通配符和正则表达式的区别

前端之家收集整理的这篇文章主要介绍了通配符和正则表达式的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

通配符多用在文件名上,比如查找find,ls,cp,等等

下表是鸟哥给的Linux下的通配

符� �热�
* �f用字元,代表 0 ��或多��字元(或�底郑�
? �f用字元,代表『一定有』一��字母
# �]解,�@��最常被使用在 script ��中,��檎f明!
/ 跳�符�,��『特殊字元或�f用字元』�原成一般字元
| 分隔���管�命令的界定;
; �B�m性命令的界定(注意!�c管�命令�K不相同)
~ 使用者的家目�
$ 亦即是��抵�前需要加的��等〈�值
& �⒅噶钭�成背景下工作
! ���\算意�x上的『非』 not 的意思!
/ 路�椒指舻姆��
>,>> �出��向,分�e是『取代』�c『累加』
' �我��,不具有��抵�Q的功能
" 具有��抵�Q的功能
` ` ���『 ` 』中�g�榭梢韵�绦械闹噶睿�
( ) 在中�g�樽� shell 的起始�c�Y束
[ ] 在中�g�樽衷�的�M合
{ } 在中�g�槊�令�^�K的�M合!

下表是鸟哥总结的正则表达式的字符

@H_301_126@
RE 字符 意�x�c�例
^word 待搜�さ淖执�(word)在行首!
�例:grep -n '^#' regular_express.txt
搜�ば惺�� # �_始的那一行!
word$ 待搜�さ淖执�(word)在行尾!
�例:grep -n '!$' regular_express.txt
�⑿形�� ! 的那一行列印出�恚�
. 代表『任意一��』字符,一定是一��任意字符!
�例:grep -n 'e.e' regular_express.txt
搜�さ淖执�可以是 (eve) (eae) (eee) (e e), 但不能�H有 (ee) !亦即 e �c e 中�g『一定』�H有一��字元,而空白字元也是字元!
/ 跳�字符,�⑻厥夥��的特殊意�x去除
�例:grep -n /' regular_express.txt
搜�ず�有�我�� ' 的那一行!
* 重�}零��或多��的前一�� RE 字符
�例:grep -n 'ess*' regular_express.txt
找出含有 (es) (ess) (esss) 等等的字串,注意,因�� * 可以是 0 ��,所以 es 也是符合��搜�ぷ执�。另外,因�� * �橹匮}『前一�� RE 字符』的符�, 因此,在 * 之前必�要�o接著一�� RE 字符喔!例如任意字元�t�� 『.*』 !
/{n,m/} �B�m n 到 m ��的『前一�� RE 字符』
若�� /{n/} �t是�B�m n ��的前一�� RE 字符,
若是 /{n,/} �t是�B�m n ��以上的前一�� RE 字符!
�例:grep -n 'Go/{2,3/}g' regular_express.txt
在 g �c g 之�g有 2 ��到 3 ��的 o 存在的字串,亦即 (goog)(gooog)
[] 字元集合的 RE 特殊字符的符�
[list]
�例:grep -n 'g[ld]' regular_express.txt
搜�ず�有 (gl) 或 (gd) 的那一行~
需要特�e留意的是,在 [] ��中『�代表一��待搜�さ淖衷�』,
例如: a[afl]y 代表搜�さ淖执�可以是 aay,afy,aly
亦即 [afl] 代表 a 或 f 或 l 的意思!


[ch1-ch2]
�例:grep -n '[0-9]' regular_express.txt
搜�ず�有任意�底值哪且恍校⌒杼�e留意,在字元集合 [] 中的�p� - 是有特殊意�x的,他代表���字元之�g的所有�B�m字元!但�@���B�m�c否�c ASCII ��a有�P, 因此,您的��a需要�O定正�_(在 bash ��中,需要�_定 LANG �c LANGUAGE 的��凳欠裾��_!) 例如所有大��字元�t�� [A-Z]

[^]
�例:grep -n 'oo[^t]' regular_express.txt
搜�さ淖执�可以是 (oog) (ood) 但不能是 (oot) ,那�� ^ 在 [] ��r, 代表的意�x是『反向�x�瘛坏囊馑肌�例如,我不要大��字元,�t�� [^A-Z] ~ 但是,需要特�e注意的是,如果以 grep -n [^A-Z] regular_express.txt �硭�ぃ� �s�l�F��n案�鹊乃�有行都被列出,�槭颤N?因�檫@�� [^A-Z] 是『非大��字元』的意思, 因�槊恳恍芯�有非大��字元,例如第一行的 "Open Source" 就有 p,e,n,o.... 等等的小��字元, 以及�p引� (") 等字元,所以��然符合 [^A-Z] 的搜�ぃ�

基本上解释就是通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中。而正则表达式是操作字符串,以行尾单位来匹配字符串使用的。

还有一点需要注意的是:*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,不能独立使用的。比如通配符可以用*来匹配任意字符,而正则表达式不行,他只匹配任意长度的前面的字符。

原文链接:https://www.f2er.com/regex/358562.html

猜你在找的正则表达式相关文章