一。關鍵在於將信息寫成一個正則表達式。我們先看正則表達式的常用語法:
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 匹配0-9的數字3個到5個之內
a?b b 或 ab
a+b aaaaab
3) 位置
^ 字符串的起始位置,表示匹配必須放生在被查找文本開始處。
例如: ^spam 意味着字符串必須以spam開始
$ 字符串的結尾位置,表示該字符串必須以這個正則表達式的模式結束。
例如:spam$ 意味着字符串必須以spam結尾
正則表達 相符的字符串舉例 不相符字符串
^ab.*c$ abeec cabeec (如果用re.search(), 將無法找到。)
注意:在方括號內,普通的正則表達式符號不會被解釋,就是說,不需要在前面加上倒斜杠轉義?,(),*等字符。