正規表示式基礎知識

2021-10-10 21:36:13 字數 1675 閱讀 8490

概念

使用單個字串來描述、匹配一系列符合某個句法規則的字串。

-------正則語法

2. 元字元及元字元的反義

. 匹配除換行符以外的任意字元;

\w 匹配字母或數字或下劃線或漢字;

\s 匹配任意的空白符;

\d 匹配數字;

\b 匹配單詞的開始或結束;

[ ] 匹配其中的任意字元;

\w 匹配非字母、數字、下劃線和漢字的字元;

\s 匹配任意不是空白符的字元;

\d 匹配任意非數字的字元;

\b 匹配不是單詞開頭或結束的位置;

[^x] 匹配x以外的任意字元;

[^abc] 匹配除了abc以外的任意字元;

^ 匹配字串的開始;

$ 匹配字串的結束;

正規表示式中的重複模式

*表示任意長度的字串,即重複零次或多次;

+表示重複一次或多次;

?表示重複零次或一次;

重複n次;

重複n到m次;

重複n次或更多次;

正規表示式中的分支條件 |

用 | 把不同的規則分割開,從左到右地測試每個條件,如果滿足了某個分支的話,就不會再去管其他的條件了

正規表示式中的分組

將子表示式進行做成子集,用( )這個符號進行分組;

分組的命名:(?《分組名》exp)

(?:exp)匹配exp表示式,但不給此分組分配組號,即不能通過分組名索引出來。

正規表示式中貪婪和懶惰匹配

貪婪(盡可能多)

a.*b(aabab)->aabab

懶惰(盡可能少):匹配任意數量的重複時在能使整個匹配成功的前提下是用最少的重複;如下面的例題:

a.*?b(aabab)->aab

*?重複任一次,但盡可能少重複;

+?重複一次或更多次,但盡可能少重複;

??重複零次或多次,但盡可能少重複;

?重複n到m次,但盡可能少重複;

?重複n到更多次,但盡可能少重複;

正規表示式中的後向引用

要匹配taobao taobao,home home這樣的情況如何處理呢?

\b(\w+)\b\s+\1\b或者\b(?\w+)\b\s+\k\b

8. 正規表示式中的零寬斷言

(1)?=exp零寬度正**先行斷言,自身出現的位置的後面能匹配表示式exp;

例如:\b\w+(?=ing\b)

singing和dancing中會匹配出sing和danc

(2)?<=exp 零寬度正回顧後發斷言,自身出現的位置的前面能匹配表示式exp;

(<?=\bre)\w+\b

reading中匹配出ading

注意:它不會匹配出exp本身,顧名思義,零寬,不佔位!

正規表示式中的負向零寬斷言

(1)?!exp 零寬度正**先行斷言,自身出現的位置的後面剛好不能匹配表示式exp;

(2)?<!exp 零寬度正回顧後發斷言,自身出現的位置的前面剛好不能匹配表示式exp;

-------正則處理函式

re.match()

re.search()

re.findall()

re.sub()

正規表示式基礎知識

我們先從簡單的開始。假設你要搜尋乙個包含字元 cat 的字串,搜尋用的正規表示式就是 cat 如果搜尋對大小寫不敏感,單詞 catalog catherine sophisticated 都可以匹配。也就是說 1.1 句點符號 假設你在玩英文拼字遊戲,想要找出三個字母的單詞,而且這些單詞必須以 t ...

正規表示式基礎知識

乙個正規表示式就是由普通字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。如 jscript vbscript 匹配 t t 匹配乙個空白行。d d d d 驗證乙個i...

正規表示式基礎知識

正規表示式基礎知識 正規表示式是一種可以用於模式匹配和替換的強有力的工具,乙個正規表示式就是由普通的字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式,它描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。正規表示式在字元資料處...