软件开发和网站建设过程中,经常会用到正则到达式,下面介绍一下正则表达式的规则和常用的正则表达式。
特殊匹配
\r,\n 回车和换行符
\t 制表符
\\ 匹配"\"本身
\^ 匹配^符号本身
\$ 匹配$本身
\. 匹配小数点.本身
常规匹配
\d 0~9中的任意一个数字
\w 任意一个字母,数字或下划线
\s 空格、制表符、换页符等空白字符中的任意一个
. 小数点匹配 除\n(换行符)外的任意一个字符
中括号[]和^的使用
[a5@] 匹配a或5或@
[^abc] 匹配abc之外的任意一个字符
[a-z] 匹配a-z之间的任意一个字符
[^a-s0-6] 匹配a-s,0-6之外的任意一个字符
匹配次数处理
{n} 表达式重复n次, 例:\w{2} 2个\w;2{5}匹配22222
{m,n} 表达式最少重要m次,最多重复n次;例:ab{1,2}匹配ab,abb
{m,} 表达式最少重复m次,最多无限制;例:ab3{2,}匹配ab33,ab333,ab3333..
? 表达式匹配0次或1次,相当于{0,1}
+ 表达式匹配1次或多次,相当于{1,}
* 表达式匹配0次或多次,相当于{0,}
特殊符号
^ 以字符串开始的地方匹配
$ 以字符串结束的地方匹配
\b 匹配单词边界\w和非\w之间的边界
| 左右两边表达式或的关系
() 括号中作为组合体匹配
其他特殊规则:
(?:pattern) 匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“or”字符 (|) 组合模式部件的情
况很有用。例如,'industr(?:y|ies) 是比 'industry|industries' 更经济的表达式。
(?=pattern)执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用
的匹配。例如,'Windows (?=95|98|NT|2000)' 匹配“Windows 2000”中的“Windows”,但不匹配“Windows 3.1”中的“Windows”。预测先行不占用字符
,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
(?!pattern)执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以
后使用的匹配。例如,'Windows (?!95|98|NT|2000)' 匹配“Windows 3.1”中的 “Windows”,但不匹配“Windows 2000”中的“Windows”。预测先行不占
用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
常用的正则表达式:
匹配空行:/^\s*$/
匹配 HTML 标记:/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配html标签之间内容:(?<=<h1>).*(?=</h1>)
合肥开拓科技,为中小微企业提供软件开发,网站建设及网站推广等计算机软硬件及网络服务,详见http://www.kt00.com