正規表示式(regular expression)描述了一種字串匹配的模式(pattern),用於字串的匹配和提取等操作。正規表示式在所有程式語言中都是通用的。
匹配單個字元
.匹配多個字元[ ]\d
\d\s
\s\w
\w
*+?匹配字串首尾:
在正規表示式的首部新增^
,意味著待匹配的字串從首部就要和正則式匹配。類似的,正則式尾部新增$
,表示待匹配的字串從尾部需和正則式匹配。
^常用的正規表示式:$
利用分組, 可以提取字串中想要的指定內容。用括號()
括起來的正規表示式表示乙個分組,通過group()
函式可獲取分組中的字串。例子:
# 匹配**號碼, 匹配模式中有兩個分組:(\d)、(\d)如果想判斷字串中是否具有規律相同的多個子串時, 可以採用分組:>>> m = re.match(r'^(\d)-(\d)$', '010-12345')
>>> m
<_sre.sre_match object; span=(0, 9), match='010-12345'>
>>> m.group(0) # 用group函式可以提取匹配的部分
'010-12345'
>>> m.group(1) # group(1)表示第乙個分組
'010'
>>> m.group(2) # group(2)表示第乙個分組
'12345'
例如,正規表示式<(\w*)>.*<(/\1)>
可以匹配,不能匹配
fadsfas
。
當分組個數過多時,可以給分組起別名,在同乙個正規表示式中重複引用該分組。
在python中,re模組已為我們實現了正規表示式的相關操作:
例子:
# re.search()in [7]: ret = re.search(r"hello", "hello world! hello world!")
in [8]: ret.group()
out[8]: 'hello'
# re.findall()
in [9]: ret = re.findall(r"hello", "hello world! hello world!")
in [10]: print(ret)
['hello', 'hello']
# re.sub()
in [15]: ret = re.sub(r"hello","bye", "hello world! hello world!")
in [16]: ret
out[16]: 'bye world! bye world!'
# re.split()
in [12]: ret = re.split(r":| ","hello:ymn 25 shenyang") # 按:或空格分割字串
in [13]: ret
out[13]: ['hello', 'ymn', '25', 'shenyang']
關於python正規表示式
這篇總結很片面,只是對於python中使用正則的初步認識。python中通過匯入re模組提供對正規表示式的支援。下文主要針對python3進行解釋 import re pattern re.compile hello match pattern.match hello world print mat...
glob,正規表示式元字元,擴充套件正規表示式總結
globbing 檔名通配查詢詳細資訊 man glob 元字元 匹配任意長度的任意字元 匹配任意單個字元 匹配指定範圍內的任意單個字元 匹配指定範圍外的任意單個字元 有幾種特殊格式 a z 0 9 a za z a z0 9 upper 所有大寫字母 lower 所有小寫字母 alpha 所有字母...
關於正規表示式
前言 regular expressions 正規表示式,以下用re稱呼 對小弟來說一直都是神密的地帶,看到一些網路上的大大,簡單用re就決解了某些文字的問題,小弟便興起了學一學re的想法,但小弟天生就比較懶一些,總希望看有沒有些快速學習的方式,於是小弟又請出google大神,借由祂的神力,小弟在網...