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

通配符与正则表达式

发布时间:2020-12-13 22:24:16 所属栏目:百科 来源:网络整理
导读:通配符与正则表达式很容易混淆,首先要明白二者是不同的。 通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序。 几个典型区别: 通

通配符与正则表达式很容易混淆,首先要明白二者是不同的。通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序。

几个典型区别:

通配符
*:匹配0个字符或多个字符。

正则表达式:

*:匹配该字符的前一个字符的0次或多次出现。


正则表达式是大小写敏感的。

要想匹配行首的字符要使用抑扬字符(^),当抑扬字符(^)出现在方括号中时,它表示“排除”。

.点
匹配除“rn”之外的任何单个字符。要匹配包括“rn”在内的任何字符,请使用像“[sS]”的模式。
?
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。
*
匹配前面的子表达式任意次。例如,zo*能匹配“z”,“zo”以及“zoo”。*等价于{0,}。

(pattern)

匹配pattern并捕获该匹配的子表达式。可以使用$0…$9属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“(”或者“)”。


(?:pattern)

匹配pattern但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“or”字符 (|) 组合模式部件的情况很有用。例如,'industr(?:y|ies) 是比 'industry|industries' 更经济的表达式。

x|y

匹配xy。例如,'z|food' 匹配“z”或“food”。'(z|f)ood' 匹配“zood”或“food”。

[xyz]
字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]
负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。

参考:

http://baike.baidu.com/link?url=WEH-vBcoiAqWXGycIf4Vwp9Hm5WEx9TLqVCNrhCSk6Zfo2hN1MrNjG588auPrLRsq9bDeX9EHYAVrMW8jS2sk_

(编辑:李大同)

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

    推荐文章
      热点阅读