通配符與正則表達式(過濾手機號,ip地址)

通配符

通配符: 鍵盤上的一些符號,在查找某些文件時 不知道文件全名或由於名字太長,不想輸入全名的情況下 常常使用通配符 來代替一個或多個字符.(用於匹配符合條件的文件名,完全匹配)

*:匹配任意多個字符或者0個字符
?:任意一個字符
[^]:匹配括號範圍外的任意一個字符
[]:匹配括號範圍內的任意一個字符
注:[0-9]=[123456789]
[ A-Z]=[ABCDEFGH…Z]
[a-z]=[abcdefg…z]

正則表達式

正則表達式:匹配文件中符合規則的字符串
分類:
1.基本的正則表達式 BRES 加\
2.擴展的正則表達式 ERES 加-E
3. prel的正則表達式 PRES


常用的正則
*:匹配前一個字符0次或多次
+:匹配前一個字符一次或多次(需要轉義)
?:匹配前一個字符0次或一次(需要轉義)
.:匹配任意一個字符(任意兩個字符)
$:匹配行尾
^$:匹配空行
{n}:匹配前一個字符n次(需要轉義)
{n,}:匹配前一個字符大於n次
{m,n}:匹配前一個字符至少m次,至多n次
^:匹配行首
[]:匹配範圍內內的任意一個字符
[^]:匹配範圍外的任意一個字符
( ):匹配一個單元(需要轉義)
\b:匹配單詞邊界
|:(交替運算符):x|y:要麼匹配x要麼匹配y


幾個常用練習

1.用正則表達式過濾以138,155,186,152開頭的手機號(答案有很多種)
(1).grep -E “^[^0-9]1[(38)|(55)|(86)|(52)][0-9]{9}[0-9]$” 文件名
(2).grep -E “^[^0-9]1[358][8562][0-9]{8}$” 文件名
這裏寫圖片描述

2.用正則表達式過濾IP地址(答案有很多種)
提示 :IP地址從0-255之間,要把0-255差分成0-99,100-199,200-129,250-255,然後在分別過濾出4段就出來了。
(1).grep -E “((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)” 文件名
這裏寫圖片描述
(2).grep -E “((25[0-5]|2[0-4][0-9]|[0-9]|1[0-9][0-9]|[1-9][0-9]?).){3}((25[0-5]|2[0-4][0-9]|[0-9]|1[0-9][0-9]|[1-9][0-9]?)” 文件名

這裏寫圖片描述

3.匹配身份證號 (答案有很多種)
grep -E “^[^0-9]411[0-9]{15}[^0-9]” 文件名

附上一張過濾身份證號的分析
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章