慢慢記錄。因為使用頻率的原因,這個東西學了忘忘了學。
基本正規表示式(regular expression)
cp /etc/passwd /home/axe/test(複製模版檔案)
cd home/axe/test
1."."表示任意單個字元。
grep :...: passwd #匹配::之間有三個字元的行。
2."*"匹配前乙個字元0次或者n次
grep 00* passwd #匹配含有0的行
3.".*"匹配多個字元
4.""匹配中的任一字元
grep :1[01]*: passwd
5.[x-y]匹配連續的字串
[0-9],[a-z]
6."^"匹配字串的頭
grep ^root passwd
7."$"匹配字串的尾
8."[^n]"匹配否定
9."\"匹配前乙個字元重複至少n次
"\"匹配前乙個字元重複n-m次。
"\"匹配前乙個字元重複n次
grep "o\" passwd #(要加引號) 匹配o至少兩次
grep "o\" passwd #匹配o1-2次
grep "o\" passwd #匹配o兩次
擴充套件正規表示式(extended regular expression)
linux常用工具支援擴充套件正則的有egrep awk等等。
1. 等同於基本正則裡的\,匹配前乙個字元n-m次
2.+ 等同於基本正則裡的 \ 匹配前乙個字元1次或者多次
3.? 等同於基本正則裡的\ 匹配前乙個字元0次或者1次。
4.| 匹配邏輯或者 eg: egrep "axe|root" passwd
posix規範
[:alpha:] 字母字元
[:alnum:] 字母與數字字元
[:cntrl:] 控制字元
[:digit:] 數字字元
[:xdigit:] 16進製制
[:punct:] 標點
[:graph:] 非空格字元
[:print:] 任何可以顯示的字元
[:space:] 空白
[:blank:] 空格與tab
[:lower:] 小寫字元
[:upper:] 大寫字元
在linux裡posix規範可以通過引用。舉個栗子,grep --color [[:digit:]] passwd
gun規範
主要是轉義元字元
應用例項
匹配一篇文章中所有的單詞book
egrep "(^| )[\"[(?.,;:'s]*($| )" file
細節:1.book前可能出現的字元有 ")].,?:'s
3.在book兩邊有空格或者行首行尾標誌^和$
正規表示式 正規表示式函式 筆記
筆記直接使用pycharm製作,需要原始檔請私聊。正規表示式函式 1.match 2.search 3.全域性匹配函式 全域性匹配 re.compile 正規表示式 findall 資料 import re string poythonydasadcasa pat2 p.y 懶惰模式執行 較精準 r...
正規表示式筆記
不同的語系編碼的順序不一樣 lang c 0 1 2 3 a b c d z a b c d z lang zh cn 0 1 2 3 4 a a b b c c z z 使用正規表示式時,需要留意環境的語系是什麼,否則會有不同的結果 alnum 英文大小寫字元及數字 0 9 a z a z alp...
正規表示式筆記
d 0 9中的任意乙個數字 w a z,a z,0 9,中的任意乙個,即字母數字下劃線 s 空格,製表符,換頁符等空白字元的其中任意乙個 小數點可以匹配換行符 n 以外的任意乙個字元 匹配某範圍內的任意乙個字元 ab9 匹配 a b 9 中的任意乙個 abc 匹配abc之外的任意乙個字元 a g 匹...