blog
正则表达式
\b
: 单词的开头或结尾, 也可称做单词的分界处. 通常单词使用的是空格或是标点符号来分隔单词,\b
只是匹配一个位置,并不匹配单词分隔符中的任何一个..
: 匹配除了换行符之外的任意字符.*
: 匹配在它以前的能够连续重复使用任意次用来使整个表达式得以匹配,表明的既不是字符也不是位置.(.*
组合在一块儿是任意数量的不包含换行的字符).+
: 匹配重复1次或更屡次(注意和*
的区别).\d
: 匹配数字.\w
: 匹配字母或数字或下划线或汉字.^
: 匹配字符串的开始.$
: 匹配字符串的结束.\s
: 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等.\W
: 匹配任意不是字母,数字,下划线,汉字的字符.\S
: 匹配任意不是空白符的字符.\S+
: 匹配不包含空白符的字符串.\D
: 匹配任意非数字的字符.\B
: 匹配不是单词开头或结束的位置.[^x]
: 匹配除了x之外的任意字符.[^aeiou]
: 匹配除了aeiou这几个字母之外的任意字符.*
: 重复零次或更屡次.+
: 重复一次或更屡次.?
: 重复零次或一次.{n}
: 重复n次.{n,}
: 重复n次或更屡次.{n,m}
: 重复n到m次.|
)|
即管道,知足任意一种状况均可以匹配 (\d{5}-\d{4}|\d{5}
,美国邮政编码,5位数字或是使用-
9位数字).()
)()
即子表达式,指定子表达式重复的次数((\d{1,3}\.){3}\d{1,3}
,ip地址,更复杂的ip匹配((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
)(exp)
: 匹配exp,并捕获文本到自动命名的组里.(?<name>exp)
: 匹配exp,并捕获文本到名称为name的组里,也能够写成(?'name'exp).(?:exp)
: 匹配exp,不捕获匹配的文本,也不给此分组分配组号.((?:exp)
不会改变正则表达式的处理方式,只是这样的组匹配的内容不会像前两种那样被捕获到某个组里面,也不会拥有组号。)\b
,\^
,$
用于指定位置)(?=exp)
: 匹配exp前面的位置.(\b\w+(?=ing\b)
匹配以ing
结尾的单词的除ing之外的部分)(?<=exp)
: 匹配exp后面的位置.((?<=\bre)\w+\b
匹配以re
开头的单词除re之外的部分)(?!exp)
: 匹配后面跟的不是exp的位置.(?<!exp)
: 匹配前面不是exp的位置.(?#comment)
: 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读.\d
= [0-9]
+
= {1,}
*
= {0,}
?
= {0,1}
\D
= [^0-9]
\w
= [A-Za-z_0-9]
match
方法 exec
方法 test
方法 search
方法 replace
方法 split
方法 ps: 参考了不少目前没有接触到的知识,有些很复杂的感受须要后期再次阅读,暂不放进整理的文档里,正则按个人理解,匹配的那些都大同小异,我想,写的一手好正则的人必然是经历很深刻的理解与实践才能够达成,目前在正则上的理解仍是不太够的,平时实践的内容最多用在匹配字符串,数字这样简单的正则实践上,不过经过这几天断断续续的整理与思考,发现正则仍是颇有用处,之后再接触的正则,也必须时刻经过复习与更深入的理解实践才行.数组