正規表示式語法學習 Python Qt Vim

2021-05-27 14:06:22 字數 1417 閱讀 8002

python

qt

vim

字串開頭^\a

^ ^vim中,\a代表非字元,與\a即[0-9a-za-z]對應

字串結尾$\z

$ $單詞邊界\b

\b \<

\>

vim中\b代表退格,其他[\b]表示退格

單詞字元\w

\w \w

對於vim,指[0-9a-za-z_],其他,包含unicode

數字字元\d

\d \d

對vim,指[0-9],其他,包含unicode數字字元

0次或1次???

? ?? 

\?\=

\ \ 

\ \ 

python中額外帶問號的是非貪婪模式

vim中帶負號的是非貪婪

? * +這3種都可以看作的特例,後面不再列這麼多了

0次或多次**?

* *\{} \ 

1次或多次++?

+ \+

重複n次 

\ \n次以上 ?

\ \ 

n到m次 ?

\ \ 

子表示式(分組)

(...)

(...)

\(...\)

兩種用途,分組以便應用重複,回溯引用通過\1\2...

引用子表示式

\number

\number

\number

只是分組

(?:...)

(?:...)

\%(...\)

不計算為子表示式個數,不能回溯

向前查詢(lookahead)

(?=...)

(?=...)

\(...\)\@=\&

比如"zhang(?=800)"找到zhang後要檢查其後是否是800,是則成功。將匹配zhang800而不是zhang801中的zhang

負向前查詢(negative lookahead)

(?!...)

(?!...)

\(...\)\@!

同上,只是不是...則成功。"zhang(?=800)"匹配dbzhang801而不是dbzhang800中的zhang

向後查詢(positive lookbehind)

(?<=...)

\(...\)\@<=

比如"(?<=db)zhang"找到zhang後要檢查其前面是否是db,是則成功。匹配dbzhang而不是debaozhang的zhang.

負向後查詢(negative lookbehind)(?

\(...\)\@

同上,最後,不是...則成功。匹配debaozhang中的zhang

正規表示式語法學習

描述了一種字串匹配的模式。可以用來檢查乙個串是否包含有某個子串,將匹配的子串替換 從某個串中取出符合條件的子串等 普通字元 abc 匹配 中所有的字元 abc 匹配除了 中字元的所有字元 a z 表示乙個區間,匹配所有大寫字母,a z 表示所有小寫字母 匹配除了換行符 n r 之外的任何單個字元,相...

正規表示式基本語法學習

正規表示式常用的 本人今天下午沒什麼事做,現學現賣 dd 表示前導符必須要有1個或多個 上述表示式匹配 dd dddd 等 aa 表示前導符必有有0個貨多個 如 aa aaa ak?表示前導符有0個或1個 ak a 只有這兩個匹配 ak 是乙個非負整數。匹配確定的 n 次 ak n 是乙個非負整數。...

正規表示式基本語法學習

兩個特殊的符號 和 他們的作用是分別指出乙個字串的開始和結束。例子如下 the 表示所有以 the 開始的字串 there the cat 等 of despair 表示所以以 of despair 結尾的字串 abc 表示開始和結尾都是 abc 的字串 呵呵,只有 abc 自己了 notice 表...