正则表达式
明确给出字符表示精确匹配,其他的为模糊匹配
通用符:
\d
匹配一个数字\w
匹配一个数字或字母.
匹配一个任意字符\s
表示匹配一个空格- 转移字符加
\
量词:在通用符后面直接添加
*
表示任意个字符(0-..)+
表示至少一个字符?
表示0或者1个字符{n}
表示n个字符{n,m}
表示n-m个字符[]
表示范围,可以理解为打包,[0-9a-zA-Z\_]+
表示至少匹配由一个数字, 字母或者下划线组成的字符串A|B
表示匹配A或者B,(f|F)oo
匹配foo或者Foo^
表示行的开头,^\d
表示必须以数字开头$
行的结束,\d$
必须以数字结束
高级语法:
()
分组,^(\d{3})-(\d{3,8})$
将匹配字符串分成两个组,group(0)b表示匹配的原始字符串,group(1)表示第一个子串- 正则表达式默认为贪婪匹配,在满足条件的情况下匹配尽可能多的字符,非贪婪为匹配尽可能少的字符(在考虑到后面语句的情况下,尽可能少的匹配),量词后面加上
?
表示非贪婪匹配,如:(\d+?)(0*)$
可以避免\d匹配到后面的0(贪婪受到后面(0*)的约束,为了不影响(0*)的匹配,前面的语句不会匹配到0)