正则总结
来源:互联网 发布:仙剑4 知乎 编辑:程序博客网 时间:2024/06/05 14:51
一。一些正则例子
正则
串
结果
说明
b
abc
b
ab+
abbc
abb
1//2
ab1/
1/2
1/t2
ab1
12
1/$2
ab1$
1$2
a/d/d/db
a123b
a123b
a/d/w/w/wb
a1b3_b
a1b3_b
1/s2
a1 2b
1 2
空格
1/s2
a1 2b
12
制表符(Tab)
1/s2
ab1
12
换页符
1/s+2
ab1
12
多个换页符
1.2
ab
142
小数点可以匹配除了换行符(/n)以外的任意一个字符
[ab12@]
ab
a 和 b和1和2
匹配 "a" 或 "b" 或 "5" 或 "@"
[^ab12]
ab
4和c
匹配 "a","b","c" 之外的任意一个字符
[a-d]
afgd
a 和 d
匹配 "a"~"d" 之间的任意一个字母
[^a-d0-3]
afgd1425
f和4和5
匹配 "A"~"F","0"~"3" 之外的任意一个字符
a/w{2}
abcd
abc
{n}表达式重复n次
a/w{2,4}
abcdefg
abcde
{m,n}表达式至少重复m次,最多重复n次
a/w{2,}
abcdefg
abcdefg
{m,} 表达式至少重复m次
a/w?
abcdefg
ab
? 匹配表达式0次或者1次,相当于 {0,1}
a/w+
abcdefg
abcdefg
+表达式至少出现1次,相当于 {1,}
a/w*
abcdefg
abcdefg
*表达式不出现或出现任意次,相当于 {0,}
^a/w*
abcdefg
abcdefg
与字符串开始的地方匹配
^b/w*
abcdefg
匹配失败
/w*g$
abcdefg
abcdefg
与字符串结束的地方匹配
/w*f$
abcdefg
匹配失败
/bend/b
weekend,endfor,end
end
匹配一个单词边界,也就是单词和空格之间的位置
/bend/b
weekend endfor end
end
Tom|Jack
I'm Tom, he is Jack
Tom 和Jack
左右两边表达式之间 "或" 关系,匹配左边或者右边
a(b/w+f)
abcdefg
bcdef
( )
(1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
a/w+a
abbbabbba
abbbabbba
贪婪模式
a/w+?a
abbbabbba
abbba
非贪婪模式
<td>(.*)</td>
<td><p>aa</p></td><td><p>bb</p></td>
<td><p>aa</p></td><td><p>bb</p></td>
贪婪模式
<td>(.*?)</td>
<td><p>aa</p></td><td><p>bb</p></td>
<td><p>aa</p></td>
非贪婪模式
(/w)/1{4,}
aa bbbb ccc abc ddddd
ddddd
反向引用 /1, /2...
<(/w+)/s*(/w+(=('|").*?/4)?/s*)*>.*?<//1>
<td id='t1' style='bgcolor:white'>aa</td>
<td id='t1' style='bgcolor:white'>aa</td>
反向引用 /1, /2...
windows (?=xp|2000)
windows xp,windows 2003,windows 2000,windows 98,windows me
windows xp和windows 2000中的windows
正向预搜索:"(?=xxxxx)","(?!xxxxx)"
(/w)((?=/1/1/1)(/1))+
aaa ffffff 999999999
ffff 9999999
重复4次以上的字母数字,则匹配其剩下最后2位之前的部分
windows (?=xp|2000)
windows xp,windows 2003,windows 2000,windows 98,windows me
,windows 2003 windows 98
windows me中的windows
格式:"(?!xxxxx)",所在缝隙的右侧,必须不能匹配 xxxxx 这部分表达式。
do(?=/w)
done, do, dog
done dog中的do
do(?!/w)
done, do, dog
do
a/x20bc
a bc
a bc
/xXX 编号在 0 ~ 255 范围的字符,比如:空格可以使用 "/x20" 表示
a/sbc
a bc
a bc
"/s","/d","/w","/b"对应的大写字母表示相反的意义
a/Sbc
a2bc
a2bc
a/dbc
a2bc
a2bc
a/Dbc
a bc
a bc
a/wbc
a_bc
a_bc
a/Wbc
a&bc
a&bc
二。正则知识点
表达式 可匹配 /r, /n 代表回车和换行符 /t 制表符 // 代表 "/" 本身
表达式
可匹配
/^
匹配 ^ 符号本身
/$
匹配 $ 符号本身
/.
匹配小数点(.)本身
表达式
可匹配
/d
任意一个数字,0~9 中的任意一个
/w
任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
/s
包括空格、制表符、换页符等空白字符的其中任意一个
.
小数点可以匹配除了换行符(/n)以外的任意一个字符
表达式
可匹配
[ab5@]
匹配 "a" 或 "b" 或 "5" 或 "@"
[^abc]
匹配 "a","b","c" 之外的任意一个字符
[f-k]
匹配 "f"~"k" 之间的任意一个字母
[^A-F0-3]
匹配 "A"~"F","0"~"3" 之外的任意一个字符
表达式
作用
{n}
表达式重复n次,比如:"/w{2}" 相当于 "/w/w";"a{5}" 相当于 "aaaaa"
{m,n}
表达式至少重复m次,最多重复n次,比如:"ba{1,3}"可以匹配 "ba"或"baa"或"baaa"
{m,}
表达式至少重复m次,比如:"/w/d{2,}"可以匹配 "a12","_456","M12344"...
?
匹配表达式0次或者1次,相当于 {0,1},比如:"a[cd]?"可以匹配 "a","ac","ad"
+
表达式至少出现1次,相当于 {1,},比如:"a+b"可以匹配 "ab","aab","aaab"...
*
表达式不出现或出现任意次,相当于 {0,},比如:"/^*b"可以匹配 "b","^^^b"...
表达式
作用
^
与字符串开始的地方匹配,不匹配任何字符
$
与字符串结束的地方匹配,不匹配任何字符
/b
匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符
表达式
作用
|
左右两边表达式之间 "或" 关系,匹配左边或者右边
( )
(1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
表达式
匹配结果
(d)(/w+)
"/w+" 将匹配第一个 "d" 之后的所有字符 "xxxdxxxd"
(d)(/w+)(d)
"/w+" 将匹配第一个 "d" 和最后一个 "d" 之间的所有字符 "xxxdxxx"。虽然 "/w+" 也能够匹配上最后一个 "d",但是为了使整个表达式匹配成功,"/w+" 可以 "让出" 它本来能够匹配的最后一个 "d"
表达式
匹配结果
(d)(/w+?)
"/w+?" 将尽可能少的匹配第一个 "d" 之后的字符,结果是:"/w+?" 只匹配了一个 "x"
(d)(/w+?)(d)
为了让整个表达式匹配成功,"/w+?" 不得不匹配 "xxx" 才可以让后边的 "d" 匹配,从而使整个表达式匹配成功。因此,结果是:"/w+?" 匹配 "xxx"
形式
字符范围
/xXX
编号在 0 ~ 255 范围的字符,比如:空格可以使用 "/x20" 表示
/uXXXX
任何字符可以使用 "/u" 再加上其编号的4位十六进制数表示,比如:"/u4E2D"
表达式
可匹配
/S
匹配所有非空白字符("/s" 可匹配各个空白字符)
/D
匹配所有的非数字字符
/W
匹配所有的字母、数字、下划线以外的字符
/B
匹配非单词边界,即左右两边都是 "/w" 范围或者左右两边都不是 "/w" 范围时的字符缝隙
字符
说明
^
匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "/^"
$
匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "/$"
( )
标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "/(" 和 "/)"
[ ]
用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "/[" 和 "/]"
{ }
修饰匹配次数的符号。要匹配大括号,请使用 "/{" 和 "/}"
.
匹配除了换行符(/n)以外的任意一个字符。要匹配小数点本身,请使用 "/."
?
修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "/?"
+
修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "/+"
*
修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "/*"
|
左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "/|"
表达式属性
说明
Ignorecase
默认情况下,表达式中的字母是要区分大小写的。配置为 Ignorecase 可使匹配时不区分大小写。有的表达式引擎,把 "大小写" 概念延伸至 UNICODE 范围的大小写。
Singleline
默认情况下,小数点 "." 匹配除了换行符(/n)以外的字符。配置为 Singleline 可使小数点可匹配包括换行符在内的所有字符。
Multiline
默认情况下,表达式 "^" 和 "$" 只匹配字符串的开始 ① 和结尾 ④ 位置。如:
①xxxxxxxxx②/n
③xxxxxxxxx④
配置为 Multiline 可以使 "^" 匹配 ① 外,还可以匹配换行符之后,下一行开始前 ③ 的位置,使 "$" 匹配 ④ 外,还可以匹配换行符之前,一行结束 ② 的位置。
Global
主要在将表达式用来替换时起作用,配置为 Global 表示替换所有的匹配。
- 正则总结
- 正则总结
- 正则总结
- 正则总结
- 正则总结
- 正则总结
- 正则总结
- 正则表达式总结
- javascript 正则表达式总结
- 正则表达式 学习总结
- 正则表达式总结
- 正则表达式总结
- 正则表达式总结
- JavaScript正则表达式总结
- 正则式学习总结
- 正则--^$的用法总结
- 正则--[]的用法总结
- ASP正则对象总结
- 常用字符串处理整理
- 北京市限价房,经济适用房,廉租房申请指南
- 谈谈电子商务网站的促销规则(定价策略)设计(一)
- 过年后第一篇
- 中国历史年代尺-夏商至民国
- 正则总结
- 招聘ASP.NET高级开发工程师
- 希望一切顺利
- msn9.0推出25G网络硬盘
- 跨域认证--使用Passport
- 概念:反向代理
- 图片服务器
- 表单元素遍历
- 看了老赵的文章,自己也想说点什么。