用途
一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等
匹配字符
.
匹配除换行符以外的任意字符
\w
匹配字母或数字或下划线或汉字
\W
反义
\s
匹配任意的空白符[\f\n\r\t\v]
(换页符\f
、回车符\r
、空格、制表符\t
、换行符\n
)
\S
反义 [^ \f\n\r\t\v]
\d
匹配数字
\D反义
定位符-匹配位置
^
字符串的开始
$
字符串的结尾
\b
单词的开始或结束
\B
反义
限定符-匹配数量
*
重复零次或更多次
+
重复一次或更多次
?
重复零次或一次
{n}
重复n次
{n,}
重复n次或更多次
{n,m}
重复n次到m次
?
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m})
后面时,匹配模式是非贪婪的。
非贪婪模式尽可能少的匹配所搜索的字符串
默认的贪婪模式则尽可能多的匹配所搜索的字符串
修饰符
i
ignore-不区分大小写
g
global-全局匹配
m
multi line-多行匹配
s
默认情况下.,匹配除换行符\n之外的任意字符,加上s,包含换行符
特殊字符-需转义
$
(
)
*
+
.
[
?
\
^
{
|
其他
(?:pattern)
industr(?:y|ies) 就是一个比 industry|industries更简略的表达式
(?=pattern)
Windows(?=95|98|NT|2000)能匹配Windows2000中的Windows,但不能匹配Windows3.1中的Windows
(?!pattern)
Windows(?!95|98|NT|2000)能匹配Windows3.1中的Windows,但不能匹配Windows2000中的Windows
(?<=pattern)
(?<=95|98|NT|2000)Windows能匹配2000Windows中的Windows,但不能匹配3.1Windows中的Windows
(?<!pattern)
(?<!95|98|NT|2000)Windows能匹配3.1Windows中的Windows,但不能匹配2000Windows中的"Windows
exp1(?:exp2)
exp1(?=exp2)
查找 exp2 前面的 exp1
exp1(?!exp2)
查找后面不是 exp2 的 exp1
(?<=exp2)exp1
查找 exp2 后面的 exp1
(?<!exp2)exp1
查找前面不是 exp2 的 exp1