學習django之正則表達式的語法


正則表達式

正則表達式的常用語法:

1)單個字符:

.          任意的一個字符

a|b        字符a或字符b

[afg]      a或者f或者g的一個字符        

[0-4]      0-4范圍內的一個字符

[a-f]      a-f范圍內的一個字符

[^m]       不是m的一個字符

\s         一個空格

\S         一個非空格

\d         [0-9]

\D         [^0-9]

\w         [0-9a-zA-Z]

\W         [^0-9a-zA-Z]

 

2)重復

 

緊跟在單個字符之后,表示多個這樣類似的字符

*         重復 >=0 次

+         重復 >=1 次

?         重復 0或者1 次

{m}       重復m次。比如說 a{4}相當於aaaa,

再比如說[1-3]{2}相當於[1-3][1-3]

{m, n}    重復m到n次。比如說a{2, 5}表示a重復2到5次。小於m次的重復,或者大於n次的重復都不符合條件。

 

正則表達          相符的字符串舉例

 

[0-9]{3,5}       9678

 

a?b              b

 

a+b              aaaaab

 

 

 

 

3) 位置

 

^         字符串的起始位置

 

$         字符串的結尾位置

 

 

 

正則表達         相符的字符串舉例        不相符字符串

 

^ab.*c$          abeec        cabeec (如果用re.search(), 將無法找到。)

 

 

4)返回控制

 

我們有可能對搜索的結果進行進一步精簡信息。比如下面一個正則表達式:

 

output_(\d{4})

 

該正則表達式用括號()包圍了一個小的正則表達式,\d{4}。

這個小的正則表達式被用於從結果中篩選想要的信息(在這里是四位數字)。

這樣被括號圈起來的正則表達式的一部分,稱為群(group)。

我們可以m.group(number)的方法來查詢群。group(0)是整個正則表達的搜索結果,group(1)是第一個群……

 

import re

m = re.search("output_(\d{4})", "output_1986.txt")

print(m.group(1)

 

 

我們還可以將群命名,以便更好地使用m.group查詢:

 

import re

m = re.search("output_(?P<year>\d{4})", "output_1986.txt")   #(?P<name>...) 為group命名

print(m.group("year")) 


免責聲明!

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



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