正则表达式_ME

基本的元字符
\d 匹配任意数字字符
. 匹配任意单个字符
\D \d的反义
| 逻辑或操作符
\f 换页符
[] 匹配字符集合中的一个字符
\n 换行符
[^] 对字符集合求非
\r 回车符
- 定义一个区间(例如A-Z)
\s 匹配一个空白字符
\ 对下一个字符转义
\S \s的反义

数量元字符
\t 制表符(Tab字符)
* 匹配前一个字符(子表达式)的零次或多次重复
\v 垂直制表符
*? *的懒惰型版本
\w 匹配任意字母数字字符或下划线字符
+ 匹配前一个字符(子表达式)的一次或多次重复
\W \w的反义
+? +的懒惰型版本
\x 匹配一个十六进制数字
? 匹配前一个字符(子表达式)的零次或一次重复
\0 匹配一个八进制数字
{n} 匹配前一个字符(子表达式)的N次重复 回溯引用和前后查找
{m,n} 匹配前一个字符(子表达式)至少M次且至多N次的重复
() 定义一个子表达式
{n,} 匹配前一个字符(子表达式)N次或更多次重复
\1 匹配第1个子表达式;\2代表第二个子表达式,依次类推
{n,}? {n}的懒惰型版本 ?= 向前查找

位置元字符
?<= 向后查找
^ 匹配字符串的开头
?! 负向前查找(非)
\A 匹配字符串的开头
?!= 负向后查找
$ 匹配字符串的结束
?() 条件(if then)
/z 匹配字符串的结束
?()| 条件(if(then else)
/< 匹配单词的开头 大小写转换
/> 匹配单词的结束
/E 结束\L或\U转换
/b 匹配单词边界(开头和结束)
/l 把下一个字符转换为小写
/B \b的反义
/L 把后面的字符转换为小写,直到遇见\E为止

特殊字符元字符
/u 把下一个字符转换为大写
[\b] 退格字符
/U 把后面的字符转换为大写,直到遇见\E为止
\c 匹配一个控制字符

匹配模式
(?m) 分行匹配模式



POSIX 字 符 类
[:alnum:] 任何一个字母或数字(等价于[a-zA-Z0-9]
[:alpha:] 任何一个字母(等价于[a-zA-z])
[:blank:] 空格或制表符(等价于[\t]
[:cntrl:] Ascii控制字符(ASCII0到31,再加上ASCII127
[:digit:] 任何一个数字(等价于[0-9])
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 任何一个小写字母(等价于[a-z])
[:print:] 任何一个可打印字符
[:punct:] 既不属于[:alnum:]也不属于[:cntrl:]的任何一个字符
[:space:] 任何一个空白字符,包括空格(等价于[^\f\n\r\t\v])
[:upper:] 任何一个大写字母(等价于[A-Z])
[:xdigit:] 任何一个十六制数字(等价于[a-fA-F0-9])
JavaScript不支持在正则表达式里使用POSIX字符类。


(\()?[2-9]\d\d(?(1)\)|-)\d{3}-\d{4} 电话号码 条件
248-555-1234
(222-222-222
(<[aA]\s*[^>]+>\s*)?<[iI][Mm][Gg]\s*[^>]+>(?(1)\s*</[aA]>)
<a href="/home"><img src="/image/"></a>
<img src="/imge">


IP地址
\b(((\d)|(\d\d)|(1\d\d)|(2[0-4]\d)|(25[0-5]))\.){3}((\d)|(\d\d)|(1\d\d)|(2[0-4]\d)|(25[0-5]))\b
192.168.12.13 1111.125.11.11 256.22.1.13 255.255.255.255 f.25.11.5


\baaa\b 单词 aaa{2} (aaa){2}
hello are you aaa,bbb aaaa aaaa bbb ccc
dddaaaaaaaaa


URL地址
(([fF][tT][pP])|([hH][tT]{2}[pP][Ss]?))://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?\b
<a href="mailto:http://www.51.com">http://www.51.com</a> <a href="mailto:https://aaa.fesa.fds">https://aaa.fesa.fds</a> <a href="mailto:http://fsa.fsa.fsda">http://fsa.fsa.fsda</a>. <a href="mailto:ftp://fkjla.fsa">ftp://fkjla.fsa</a>.. <a href="mailto:ftp://fkjla.fsa">ftp://fkjla.fsa</a> <a href="mailto:http://f22jla.55a">http://f22jla.55a</a>


邮箱
\b[\w][\w\d.]*@[\w\d.]+[\w\d]\b
fdsa.fesa@Alfsda.com fjksla.@fdla.com. fsaA@fsa.vod fdsaklfgsadljgral.fsd fdsa@fdsa.com,


回溯 <[hH]([0-6])>.*?</[hH]+\1>)
<h1>fdsa</h1><h1>fsa</h2>
<h2>fewyhtrytr</h1>
[ ]+(\w+)[ ]+\1
of of are are are abc is are


\b-\b 边界
fsda-fsa - fsa-fsafsae

(19|20)\d{2} 子表达式
(19|20)\d{2}(-\d{2}){2}
1967-08-22
2001-09-22
fsad:fdsafsa
4213421:4231


(?m)^\s*//.*$ 分行匹配
// fsafas
// gdafeawfa
// fewafgewa
// fewafesafsafseafase


回朔 替换
(\w+[\w\.]*@[\w\.]+\.\w+) 查询
<a href="mailto:$1">$1</a> 替换
<a href="mailto:ben@fas.fsda">ben@fas.fsda</a>.
<a href="mailto:fsa@fsa.cfdsa"</a>
fsa@fsa.cfdsa
fsa@fsa.cfdsa


小写转大写
(<[hH]1>)(.+)(</[hH]1>) 查询
$1\U$2\E$3 替换
fsafsafsafsaegdrfsa
fsdafsad<h1>\Ufsdafsa\E</h1>fsafsda
fsafsagasfdsafsdaffsafsad


前后查找(?<=<[Tt][iI][Tt][Ll][Ee]>).*(?=</[tT][iI][Tt][Ll][Ee]>)
前.+(?=:)
后(?<=:).*
<a href="mailto:http://fsda.fsa">http://fsda.fsa</a>
<a href="mailto:http://fsaef.wfesafs">http://fsaef.wfesafs</a>
<title>fsafsa</title>
取非\d+(?!:)
423:4231421
fas:fsda
423:4231
(\b\d{5}(?(?=:):\d{4}|\b))
嵌入条件 \d{5}(?(?=:):\d{4}))
\b\d{5}((?=:):\d{4}|(\s))
11111
22222
33333:
44444:4444


HTML注释查询<!-{2,}.*?-{2,}>
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->
<!--fsaefjsafeaskgjrsdklajfsealkjf-->


JavaScript注释查询 //.*
<script language="javascript">
//fsdafsaefseafesa
//fsdafsaefseafesa
//fsdafsaefseafesa
//fsdafsaefseafesa
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值