正则表达式——元字符

要想学会正则表达式,理解元字符是一个必须攻克的难关。
不用刻意记
.
:匹配任何 单个字符
例如正则表达式“
b.g 能匹配如下字符串:“ big” 、“ bug” 、“ bg” ,但是不匹配“ buug ,“ b..g 可以匹配“ buug 。 
[ ] :匹配括号中的 任何 一个 字符。
例如正则表达式“
b[ aui ]g” 匹配 bug big bag ,但是不匹配 beg baug 。可以在括号中使用 连字符“ -” 来指定字符的区间 来简化表示,例如正则表达式 [0-9] 可以匹配任何数字字符,这样正则表达式“ a[0-9]c” 等价于“ a[0123456789]c” 就可以匹配“ a0c” 、“ a1c” 、“ a2c” 等字符串;还可以制定多个区间,例如“ [A- Za -z]” 可以匹配任何大小写字母,“ [A-Za-z0-9]” 可以匹配任何的大小写字母或者数字。
( ) :将 () 之间括起来的表达式定义为“组” (group) ,并且将匹配这个表达式的字符保存到一个临时区域 , 这个元字符在字符串提取的时候非常有用。把一些字符表示为一个整体。 改变优先级、定义提取组 两个作用。
| :将两个匹配条件进行逻辑“或”运算。
'
z|food ' 能匹配 "z" "food" '( z|f ) ood ' 则匹配 " zood " "food"

* :匹配 0 至多个在它之前的子表达式,和通配符*没关系
例如正则表达式“
zo *” 能匹配 “ z” 、“ zo 以及 “ zoo” ;因此“ .*” 意味着能够匹配任意字符串。 "z( b|c )*"→ zb zbc zcb zccc zbbbccc "z(ab)*" 能匹配 z zab zabab (用括号改变优先级)。
+ :匹配前面的子表达式 一次或多次 ,和*对比( 0 到多次 )。
例如正则表达式
9+ 匹配 9 99 999 等。 “ zo +” 能匹配 “ zo 以及 “ zoo” ,不能匹配 "z"
? :匹配前面的子表达式 零次或一次
例如,
"do( es )?" 可以匹配 "do" "does" 。一般用来匹配“可选部分”。
{n} :匹配确定的 n 次。
" zo {2}"→zoo 。例如,“ e{2}” 不能匹配“ bed” 中的“ e” ,但是能匹配“ seed” 中的两个“ e”
{n,} : 至少匹配 n 次。
例如,“
e{2,}” 不能匹配“ bed” 中的“ e” ,但能匹配“ seeeeeeeed 中的所有“ e”
{ n,m } :最少匹配 n 次且最多匹配 m 次。
e{1,3}” 将匹配“ seeeeeeeed 中的前三个“ e”

^ shift+6 ):匹配一行的 开始
例如正则表达式“
^regex” 能够匹配字符串“ regex 我会用”的开始,但是不能匹配“我会用 regex”
^ 另外一种意思:非!(暂时不用理解)
$ :匹配行结束符。
例如正则表达式“浮云
$” 能够匹配字符串“一切都是浮云”的末尾,但是不能匹配字符串“浮云呀”


欢迎加入.net技术交流群.Net技术交流



  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值