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 表...