正規表示式
what:一種匹配字串的規則
where:程式領域:1,登入註冊的表單驗證 2.爬蟲 3.自動化開發
why:可以制定乙個規則 1.來確認某乙個字串是否符合規則 2.從大段的字串中找到符合規則的內容
how:
正規表示式的語法:1.元字元 2.量詞 3.特殊用法和現象
1元字元
[...]----匹配字元組(集)中的字元
[^...]---匹配除了字元組中字元的所有字元
d-------匹配數字
w-------匹配字母數字或下劃線
s-------匹配任意空白符
d-------匹配非數字
w-------匹配非數字或字母或下劃線
s-------匹配非空白符
-------匹配乙個換行fu
-------匹配乙個製表符
^--------匹配字串的開始
$--------匹配字串的結尾
a|b------匹配a或b
()------匹配括號內的表示式,也表示乙個組
.--------匹配除換行符以外的任意字元
-------匹配乙個單詞的邊界
2量詞*--------重複零次或更多次
+--------重複一次或更多次
?-------重複零次或一次
------重複n次
-----重複n次或更多次
----重複n到m次
轉義符在正規表示式中,有很多有特殊意義的元字元,比如d和s等,如果要在正則中匹配正常的d而不是數字
就需要對''進行轉義,變為』\『。
在python中,無論是正規表示式,還是匹配內容,都是以字串的形式出現的,在字串中也有特殊的
含義,本身還需要轉義。所以如果匹配一次d,字串中要寫出\d,那麼正則裡面就要寫出\\d,這樣
就太麻煩了。這個時候我們就需要用到了 r'd'這個概念,此時的正則就是r'\d'就可以了。
貪婪匹配
貪婪匹配:在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配
3特殊用法和現象
幾個常用的非貪婪匹配
*?------重複任意次數,但盡可能少重複
+?------重複1次或跟多次,但盡可能少重複
??-----重複0次或1次,但盡可能少重複
?---重複n到m次,但盡可能少重複
?----重複n次以上,但盡可能少重複
.*?的用法
.是任意字元
*是取0至無限長
?是非貪婪匹配
合在一起就是,取盡量少的任意字元,一般不會這麼單獨寫,大多用在
.*?x 就是取前面任意長度的字元,知道乙個x的出現。
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...