用途
一种字符串匹配的模式(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}) 后面时,匹配模式是非贪婪的。
非贪婪模式尽可能少的匹配所搜索的字符串
默认的贪婪模式则尽可能多的匹配所搜索的字符串

修饰符
iignore-不区分大小写
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