1、定義
正規表示式是使用一種模式去匹配一類字串的公式;
2、元字元
rot@123
ratgood
godgooood
gdgood
1djsdh
_test1212
020-7266452
010 6765276
0987-8726531
13687652890
78731
dhsdsjhd
hello world good
teast good
good morning
1)點號.
匹配除換行符外的任意乙個字元
#匹配rot、rat所在的行cat regtext.sh|grep
'r.t
'
執行結果:
rotrat2)星號*
匹配*號前乙個字元0次或多次
#匹配god、good等字元所在的行cat regtext.sh|grep
'go*d
'
執行結果:
good
godgooood
gdhello world good
teast good
3)\
匹配前乙個字元出現n-m次,m為空表示前乙個字元出現≥n
#匹配god,o出現大於2次所在的行cat regtext.sh|grep
'go\d
'
執行結果:
good
gooood
hello world good
teast good
4)^符號
匹配以該字串開頭的字串
#匹配以good開頭所在的行cat regtext.sh|grep
'^good
'
執行結果:
good
good morning
cat regtext.sh|grep -i '^good
'
執行結果:
good
good
good morning
#匹配非good開頭所在的行cat regtext.sh|grep -v '
^good
'
執行結果:
rotrat
god...(省略)
#匹配以good開頭的行數cat regtext|grep -c '
^good
'
執行結果:
5)$符號
匹配以該字串結尾所在的行
#匹配以good結尾所在的行cat regtext.sh|grep
'good$
'
執行結果:
good
hello world good
teast good
6)雙括號
匹配括號內的任意字元出現的行;
#手機號碼匹配,以1開頭,[0-9]數字,11位;
cat regtext.sh|grep
'^1[0-9]\
'
執行結果:
7)轉義字元 \
用於轉義特殊的符號,例如.*{}\-空格等;
#匹配座機號碼,區號為3位或四位數字、連線符為空格或-、號碼為7位數字cat regtext.sh|grep
'[0-9]\[\ \-][0-9]\
'
執行結果:
020-7266452
010 6765276
0987-8726531
8)\d
匹配任意數字,相當於[0-9]
\d是一種perl相容模式,使用這種模式匹配,需要加上-p引數
#匹配以數字開頭所在的行cat regtext.sh|grep -p '
^\d'
執行結果:
1djsdh
020-7266452
010 6765276
0987-8726531
13687652890
78731
9)\w
匹配任意數字、字母和下劃線,相當於[0-9a-za-z]
\w是一種perl相容模式,使用這種模式匹配,需要加上-p引數
#匹配以數字、字母和下劃線開頭所在的行cat regtext.sh|grep -p '
^\w'
執行結果:
rotrat
good
godgooood
gdgood
1djsdh
_test1212
020-7266452
010 6765276
0987-8726531
13687652890
...(省略)
10)\w
匹配任意非數字、字母和下劃線,相當於[^0-9a-za-z]
\w是一種perl相容模式,使用這種模式匹配,需要加上-p引數
#匹配以非數字、字母和下劃線開頭所在的行cat regtext.sh|grep -p '
^\w'
執行結果:
@123
11)\b
匹配單詞的邊界,常用於精確單詞的匹配;相當於\《單詞\>
#精確搜尋good所在的行cat regtext.sh|grep
'\bgood\b
'cat test.sh |grep'\
'
執行結果:
good
hello world good
teast good
good morning
擴充套件的正規表示式,過濾需要使用egrep
1)?匹配前面乙個字元出現0次或1次,過濾需要使用egrep
#匹配god,o出現0次或1次cat regtext.sh|egrep
'go?d
'執行結果:
執行結果:
godgd
2)+匹配前乙個字元出現1次或多次,需要使用egrep,相當於\
#匹配god、good等o出現1次或多次所在的行cat regtext.sh|egrep
'go+d
'cat regtext.sh|grep
'go\d
'
執行結果:
good
godgooood
hello world good
teast good
good morning
3)()小括號
小括號和|符號一起使用,用於匹配可替換的字元,相當於
#匹配rot或rat所在的行cat regtext.sh|egrep
'r(o|a)t
'cat regtext.sh|grep
'r[oa]t
'
執行結果:
rotrat
Linux之正規表示式
正規表示式用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk,sed等命令可以運動正規表示式。正規表示式匹配得到的結果是行 萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配。ls.find.cp這些命令不支援正規表示式,所以只能用shell自己的萬用字元來進行匹配了。例 grep a...
linux之正規表示式
正規表示式,又稱正規表示式 正規表示法 正規表示式 規則表示式 常規表示法 英語 regular expression,在 中常簡寫為 regex regexp 或 re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索...
Linux之正規表示式
字元含義 字串開始 配字串結尾 匹配0個或多個的前乙個字元。注意shell中的 是萬用字元,可以匹配任意字元。與正規表示式中的有差異。匹配任意單字元 示例1 句點匹配 句點匹配單個字元 匹配許可權 x.x.x 前4個字元之後為xc xc.示例2 行首匹配 匹配目錄 d匹配行首為001的 001 每行...