正则表达式 用法总结 part1

正则表达式 用法总结 part1

正则表达式的用途

搜索 and 替换

简单字符匹配

匹配目标文本

匹配文本中的某字符(类似于Word等工具的查找功能)

匹配任意字符(通配符)

. – 可以匹配任何单字符,包括字母,数字,标点甚至是.本身
.. – 匹配两个任意字符
注:若想匹配.本身,则需要对其进行转义,即 \.

匹配一组字符

匹配多个字符中的某一个字符

[abc]* – 表示匹配所有以a或b或c为开头的文本
[rR]eg[eE]x – 表示匹配 regex, Regex, regEx, RegEx

匹配字符区间内的某一个字符

[a-z]* – 表示匹配所有以英文小写字母(a-z)为开头的文本
[a-zA-Z0-9]* – 表示匹配所有以英文字母和数字为开头的文本

取非匹配

[^a-z]* – 表示匹配所有以英文小写字母(a-z)为开头的文本

使用元字符

对特殊字符进行转义

array\[0\] – 匹配文本array[0],若不转义,则匹配array0

匹配空白字符

[\b] – 回退一个字符(Backspace),注意要加[]\b单独使用另有含义
\f – 换页符
\n – 换行符aababa
\r – 回车符(Enter)
\t – 水平制表符(Tab)
\v – 垂直制表符

匹配特定字符类型

\d – 匹配任一数字,相当于[0-9]
\D – 匹配任一非数字,相当于[^0-9]
\w – 匹配任一字母数字下划线,相当于[a-zA-Z0-9_]
\W – 匹配任一非字母数字下划线字符,相当于[^a-zA-Z0-9_]
\s – 匹配任一空白字符,相当于[\f\r\n\t\v]
\S – 匹配任一非空白字符,相当于[^\f\r\n\t\v]
\x0A – 匹配十六进制值,0x0A = 10 = ASCII(\n),\x + 十六进制,相当于\n
\011 – 匹配八进制值,011 = 9 = ASCII(\t),\0 + 八进制,相当于\t

\cZ – 匹配控制字符Ctrl + Z,实际使用中很少见

重复匹配

要想匹配同一字符(或者字符集合)的多次重复,只需要简单的在其后加上后缀+即可。
+匹配一个或多个字符(至少一个,不匹配零个字符的情况),若想匹配零个的情况,可使用*(零个或多个任意字符),或者?(若有则,匹配一个任意字符,否则不匹配)

有多个匹配

a+ – 匹配一个以上重复的a,比如aaa
[ab]+ – 匹配一个以上重复的a或者b,比如aababa
[ab]* – 匹配零个以上重复的a或者b
a?c – 匹配的字符是可选的,比如ac(?匹配了零个字符), abc, adc(?匹配了一个字符)
[a-z]{3} –设定重复次数,相当于[a-z][a-z][a-z]
[a-z]{2,4} –为重复的次数设定区间,相当于[a-z]重复最少2次,最多4次
[a-z]{,4} –为重复的次数设定最大值,相当于最小值为0
[a-z]{2,} –为重复的次数设定最小值,相当于最大值为正无穷

防止过度匹配

+,*,{n,}匹配任意字符时,可能会过度的匹配(贪婪型),在其末尾加上?,使其工作时尽可能少的匹配字符(懒惰型)
Text:
<p>text1</p> and <p>text2</p>
<p>.*</p> – 贪婪型,将匹配<p>text1</p> and <p>text2</p>
<p>.*?</p> – 懒惰型,将匹配<p>text1</p><p>text2</p>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TaQini852

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值