正規表示式筆記

2022-07-20 06:12:09 字數 1477 閱讀 5516

慢慢記錄。因為使用頻率的原因,這個東西學了忘忘了學。

基本正規表示式(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 匹...