正則表達式——元字符


 
 
‘’正則表達式:
    對文本字符串按照某種規則進行檢索、替換
分類:
      BRE(基本正則表達式)  ---> ERE(擴展正則表達式) --->PCRE(高級語言使用的正則表達式)
基本語法:
    元字符metacharacter:
 
 
. 匹配除換行符外任意一個字符
[abc] 字符集合,只能表示一個字符位置。匹配所包含的任意一個字符
[^abc] 字符范圍,只能表示一個字符位置,匹配除去所包含的任意一個字符
[a-z]
字符范圍,也是個集合,表示一個字符位置
匹配所包含的任意一個字符
[^a-z]
字符范圍,也是個集合,表示一個字符位置
匹配除去集合內字符的任意一個字符
\b 匹配單詞的邊界
\B 不匹配單詞的邊界
\d [0-9]匹配1位數字
\D [^0-9]匹配1位非數字
\s 匹配1位空白字符,包括換行符、制表符、空格[\f \r \n \t \v]
\S 匹配1位非空白字符
\w 匹配[a-zA-Z0-9_],包括中文
\W 匹配\w之外的字符

 

單行模式:
     '  .  ' 可以匹配所有字符,包括換行('\n')
      ^ 表示整個字符串的首位,  $行尾
多行模式:
     '  .  ' 可以匹配除了換行符之外的字符
      ^ 表示每行的行首, $行尾
     開始指的是\n后緊接着下一個字符,結束指的是\n前的字符
 
*表示前面的正則表達式會重復0次或多次
+重復至少1次
?重復0次或1次
{n}重復固定n次
{n,}重復至少n次
{n,m}重復n-m次
1、匹配手機號
133xxxxxxxx
\d{11}
2、匹配座機:
025-12345678
0100-1234567
\d{3,4}-\d{7,8}
 
x|y: 匹配x或y
    wood took foot food
    w|food  或者 (w|f)ood
\數字  匹配對應的分組
(very)\1 匹配到的是 very very 匹配的組是(very)
(?:pattern)括號為了改變優先級 不需要分組就可以使用?:
 
(?
<name>exp)
(?'name'exp)
分組捕獲,可以通過name訪問分組 
python語法 (?P<name>exp)
 
零寬斷言
(?=exp)
    斷言后面必定跟個exp
    f(?=oo)   f后面必定有oo出現
(?<=exp)
    (?<=f)ood 匹配 ood,前面一定會出現f
    斷言左邊必定有個exp前綴
 
負向零寬斷言
(?!exp) 斷言exp一定不會出現在右側,也就是說斷言后面一定不是exp
foo(?!d)  foo后面一定不是d
 
(?<!exp) 斷言exp一定不能出現在左側,也就是說斷言前面一定不能是exp
(?<!f)ood ood的左邊一定不是f
 
斷言不占分組號
 
貪婪與非貪婪:
編譯器默認是貪婪模式,匹配盡量長的字符串
 
非貪婪模式,在重復的符號后面+'?',匹配最少的字符串
代碼 說明
*? 匹配任意次
+? 匹配至少一次
?? 匹配0或1次
{n,}? 匹配至少n次
{n,m}? 匹配至少n次,至多m次
 
 
引擎選項: 
 
代碼 說明
IgnoreCase 匹配時忽略大小寫
Singleline
單行模式:
可以匹配所有字符
Multiline
多行模式:
^行首、$行尾
IgnorePatternWhitespace 忽略表達式中的空白字符,如果要使用空白字符串要是用轉義

 

練習:

1、匹配0-999任意數字:

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM