正则表达式是用来匹配字符串的规则的代码
匹配IP地址
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
匹配手机号
^1[35]([1-3][0-9]|4[0-5])(0[1-9]|1[0-9])\d{5}$
符号 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母、数字、下划线或汉字 |
\s | 匹配任意空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
使用“\”符号进行转义
\\ 转义\ \. 转义.
符号 | 说明 |
---|---|
* | 零次或多次 |
+ | 一次或多次 |
? | 零次或一次 |
{n} | n次 |
{n,} | n次或更多次 |
{n,m} | n-m次 |
[0-9] [0-9a-z]
符号:| 举例:(0\d{2}-\d{8})|(0\d{3}-\d{8}) 匹配:021-85232122 0551-82918821
()
符号 | 说明 |
---|---|
\W | 匹配不是字母、数字、下划线或汉字 |
\S | 匹配不是空白符的字符 |
\D | 匹配不是数字的字符 |
\B | 匹配不是单词开头或者结束的位置 |
[^x] | 匹配除了x以外的字符 |
[^aoeiu] | 匹配除了aoeiu以外的字符 |
使用数字索引从1开始索引 \b(\w+)\b\s+\1\b
使用别名 \b(?\w+)\b\s+\k\b
符号 | 说明 |
---|---|
(exp) | 匹配exp,并捕获文本到自动命名的组里 |
(?<name>exp) | 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
(?:exp) | 匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
符号 | 说明 |
---|---|
(?=exp) | 匹配exp前面的位置 |
(?<=exp) | 匹配exp后面的位置 |
(?!exp) | 匹配后面跟的不是exp的位置 |
(?<!exp) | 匹配前面不是exp的位置 |
(?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
\b\w+(?=ing\b)
((?<=\d)\d{3})+\b
(?<=<(\w+)>).*(?=</\1>)
\b\wq[^u\s]\w\b
\b\wq(?!u)\w\b (?<![a-z])\d{7}
2[0-4]\d(?#200-249)|250-5|[01]?\d\d?(?#0-199)
(?<= # 断言要匹配的文本的前缀 <(\w+)> # 查找尖括号括起来的字母或数字(即HTML/XML标签) ) # 前缀结束 .* # 匹配任意文本 (?= # 断言要匹配的文本的后缀 <\/\1> # 查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签 ) # 后缀结束
a.b a.?b
*? 重复任意次,但尽可能少重复 +? 重复1次或更多次,但尽可能少重复 ?? 重复0次或1次,但尽可能少重复 {n,m}? 重复n到m次,但尽可能少重复 {n,}? 重复n次以上,但尽可能少重复
/g 全局搜索 /i 忽略大小写 /m 执行多行匹配
<div[^>]>[^<>](((?'Open'<div[^>]>)[^<>])+((?'-Open')[^<>])+)(?(Open)(?!))
本文作者:谭三皮
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!