加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于正则表达式——元字符

发布时间:2020-12-14 04:37:00 所属栏目:百科 来源:网络整理
导读:字符 说明 ^ 匹配文本行的开始 $ $0...$9 属性从结果“匹配”集合中检索捕获的匹配 转义字符,转义字符即给原来的字符以特殊的含义 * 零次或者多次匹配前面的字符或者子表达式 + 至少一次匹配前面的字符串或者子表达式 ? 跟在字符串或者子表达式后面时表

字符

说明
^ 匹配文本行的开始
$ $0...$9 属性从结果“匹配”集合中检索捕获的匹配
转义字符,转义字符即给原来的字符以特殊的含义
* 零次或者多次匹配前面的字符或者子表达式
+ 至少一次匹配前面的字符串或者子表达式

跟在字符串或者子表达式后面时表示至多一匹配一次,即零次或者一次匹配前面的字符串或者子表达式

跟在其他的限定符(*、+、?、{n}、{n,}、{n,m})之后,表示匹配的模式是非贪心模式,贪心模式尽可能匹配长的字符串,而非贪心模式则匹配最短的字符串

{n} 精确匹配n次前面的字符串或者子表达式
{n,}

至少匹配n次前面的字符串或者子表达式

{n,m} 至少匹配n次,至多匹配m次
(pattern) 匹配表达式,并进行捕获,可以从结果集中使用$0...$9 属性从结果“匹配”集合中检索捕获的匹配
(?:pattern) 匹配 pattern 但不捕获该匹配的子表达式
(?=pattern) 执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?=95| 98| NT| 2000)”与“Windows 2000”中的“Windows”匹配,但不与“Windows 3.1”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
(?!pattern) 执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?!95| 98| NT| 2000)”与“Windows 3.1”中的“Windows”匹配,但不与“Windows 2000”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
| 表示或的关系:x|y与 xy 匹配,“(z| f)ood”与“zood”或“food”匹配。
[……] 匹配字符集,例如:[abc]匹配a或者b或者c,如果元字符在字符集内的时候可能表示不同的含义
[^……] 匹配反向字符串,即匹配不包含在字符集中的字符
[a-z] 匹配范围,匹配a到z之间的字符,还可以[0-9]
[^a-z] 匹配反向字符范围
b 匹配边界字符,例如,“erb”匹配“never”中的“er”,但不匹配“verb”中的“er”。
B 匹配非边界字符
d 数字字符匹配
D 匹配非数字字符
s 匹配空白字符
S 匹配非空白字符
w 匹配任何字类字符[a-zA-Z0-9]
W 匹配非字类字符
. 匹配任意字符
&; 单词的开头
&; 单词的结尾

需要注意的:
在字符组内部,元字符的定义规则和他们的意义是不一样的,例如:字符组外部,点号才是元字符,字符组内部则不是。相反有些元字符只有在字符组内部才是元字符,“-”在元字符内部表示范围,而在元字符外部表示普通字符。另外一些字符例如“^”在字符组内部与字符组外部表示的含义不一样。??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读