正则表达式

文章目录

正则表达式的特点是:1. 灵活性、逻辑性和功能性非常的强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说,比较晦涩难懂。

正则表达式全集;

字面量字符( Literal Characters )

字符 描述 描述
f 换页符 (u000C)
n 换行符 (u000A)
n 换行符 (u000A)
r 回车 (u000D)
o NUL字符 (u0000)
t 制表符 (u0009)
v 垂直制表符 (u000B)
xnn 由十六进制数nn指定的拉丁字符 x0A等价于n
uxxxx 由十六进行xxxx指定的Unicode字符 u0009等价与t
cX 控制字符(X的值必须是A-Z或a-z) cJ等价于换行符n

字符类( Character Classes )

字符 描述 示例
[xyz] 匹配位于括号内的任意字符 [abc]匹配’plain’中的a
[^xyz] 匹配不在括号之中的任意字符 [^abc] 匹配’plain’中的p
w 等价于[a-zA-Z0-9_] w匹配’sina’中的s
W 等价于[^a-zA-Z0-9_] w不能匹配’sina’
s 任何Unicode空白符 [ fnrtv]
S 任何非空白字符 [^ fnrtv]
d 等价于[0-9] d匹配’sina123’中的1
D 等价于[^0-9] D不能匹配’sina1’中的1
[b] 退格直接量(特例)

重复

字符 描述 示例
{n,m} 匹配至少n次,但不超过m次,n和m必须是非负整数,且n<=m /\d{4,6}/匹配4-6位0-9的数字
{n,} 匹配至少n次 o{2,} 不匹配’Bob’中的’o’,但匹配’food’中的 o.
{n} 恰好匹配n次 o{2} 不匹配’Bob’中的’o’,但匹配’food’中的o.
? 匹配0次或1次,等价于{0,1} zo? 匹配 “z” and “zo”, 但不匹配”zoo”.
  • | 匹配1次或多次,等价于{1,} | zo+ 匹配 “zo” and “zoo”, 但不匹配 “z”.
  • | 匹配0次或多次,等价于{0,} | zo* 匹配 “z” 和 “zoo”.

非贪婪的重复

当?紧跟在其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式是尽可能少的匹配所搜索的字符串。例如字符串”ooooo”,”o+?”将匹配单个”o”,而o+匹配所有o

分享到:
network