正規表示式中的特殊字元:
$匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字元本身,請使用 \$。
( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 \( 和 \)。
*匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*。
+匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+。
.匹配除換行符 \n 之外的任何單字元。要匹配 . ,請使用 \. 。
[標記乙個中括號表示式的開始。要匹配 [,請使用 \[。
?匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 \?。
\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 'n' 匹配字元 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\",而 '\(' 則匹配 "("。
^匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 \^。
{標記限定符表示式的開始。要匹配 {,請使用 \{。
|指明兩項之間的乙個選擇。要匹配 |,請使用 \|。
re.i
re.ignorecase
讓正規表示式忽略大小寫,這樣一來,[a-z]也可以匹配小寫字母了。此特性和locale無關。
re.l
re.locale
讓\w、\w、\b、\b、\s和\s依賴當前的locale。
re.m
re.multiline
影響'^'和'$'的行為,指定了以後,'^'會增加匹配每行的開始(也就是換行符後的位置);'$'會增加匹配每行的結束(也就是換行符前的位置)。
re.s
re.dotall
影響'.'的行為,平時'.'匹配除換行符以外的所有字元,指定了本標誌以後,也可以匹配換行符。
re.u
re.unicode
讓\w、\w、\b、\b、\d、\d、\s和\s依賴unicode庫。
re.x
re.verbose
運用這個標誌,你可以寫出可讀性更好的正規表示式:除了在方括號內的和被反斜槓轉義的以外的所有空白字元,都將被忽略,而且每行中,乙個正常的井號後的所有字元也被忽略,這樣就可以方便地在正規表示式內部寫注釋了。
#!/usr/bin/python
import re
line = "cats are smarter than dogs"
matchobj = re.match( r'(.*) are (.*?) .*', line, re.m|re.i)#在字串前加上r 表示原生字元
if matchobj:
print "matchobj.group() : ", matchobj.group()
print "matchobj.group(1) : ", matchobj.group(1)
print "matchobj.group(2) : ", matchobj.group(2)
else:
print "no match!!"
探秘正規表示式
今天有個同事問起,php中的正則語法為什麼和perl中的正則語法如此的類似,是誰相容誰?到底正則是什麼?所以有了這篇文章 在我們的日常工作中,無論是在php中用正則匹配字串,還是nginx用正則重寫url,還是在vi中查詢字元,總是,用處很多也很方便。那到底什麼是正規表示式?為什麼各個應用中正則的語...
python中的正規表示式
正規表示式是一種用來匹配字串的強有力的 它的設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,我們就認為它 匹配 了,否則,該字串就是不合法的。因為正規表示式也是用字串表示的,所以,我們要首先了解如何用字元來描述字元。在正規表示式中,如果直接給出字元,就是精確匹配。用 d可以匹配...
Python中的正規表示式
在使用python製作爬蟲之前,我們必須要對python的正規表示式有一定的了解,在python中使用正規表示式要匯入re包 d匹配數字1 9 w匹配字元 匹配集合裡面的字元 匹配前面出現的正規表示式1次或多次 表示匹配任意乙個字元,除換行符除外,x.匹配xy23中的xy,若是x.則匹配出xy2 表...