re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。
例如:
import datetime
now = datetime.datetime.now().strftime('%y-%m-%d %h:%m:%s')
import re
# 常用情況1:
year = re.match('2018', now)
print(year)
# <_sre.sre_match object span="(0," match="2018">
# 常用情況2:
match_date = re.match(r'(\d)-(\d-(\d))', now)
print(match_date) # <_sre.sre_match object span="(0," match="2018-01-26">
print(match_date.group()) # 2018-01-26
print(match_date.group(1)) # 2018
print(match_date.group(2)) # 01
print(match_date.group(3)) # 26
# re.match() 必須從開始就進行匹配
match_time = re.match(r'(\d):(\d):(\d)', now)
print(match_time) # none
re.search 掃瞄整個字串並返回第乙個成功的匹配。
# 基本同 re.match() ,但是可以從任何位置匹配
match_time = re.search(r'(\d):(\d):(\d)', now)
print(match_time)
# <_sre.sre_match object span="(11," match="22:31:21">
re.sub用於替換字串中的匹配項。
# 提取url中的主要網域名稱
url = ''
domain = re.sub(r"(?, "", url)
print(domain) #
# 字串中數字乘2
defdouble
(matched):
value = int(matched.group('value'))
return str(value * 2)
s = 'a23g4hfd567'
s_nd = re.sub('(?p\d+)', double, s)
print(s_nd)
# a46g8hfd1134
re.findall() 找出所有匹配的項,並返回乙個匹配項的列表。
# 找出日期中所有的數字
正規表示式通常用於在文字中查詢匹配的字串。python裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配盡可能多的字元;非貪婪則相反,總是嘗試匹配盡可能少的字元。在」*」,」?」,」+」,」」後面加上?,使貪婪變成非貪婪。
s = 'abcdefg'
m = re.search(r'\s+', s)
print(m.group()) # abcdefg
m = re.search(r'\s+?', s)
print(m.group()) # a
python正規表示式(下)
編譯標誌 flag匹配模式 分組 字元 csv模組 方法描述 返回值compile pattern,flags 0 根據包含正規表示式的字串建立物件 re物件 search pattern,string,flags 0 在string中查詢 第乙個匹配到的物件或none match pattern,...
精通正規表示式二 Perl中正規表示式的基本應用
本書的第二章主要講的是在perl語言中運用正規表示式,雖然以前沒有接觸過perl語言,但作者的前提就是假設讀者不會perl語言,所以對於有一定程式設計基礎的人來說讀起來沒有太大困難,關於perl語言的簡單入門,除了書上講的,可以參考這篇 本篇文章主要寫一些與正規表示式有關的部分。my reply 2...
python下的正規表示式學習
re模組 re.compile 可以把正規表示式編譯成乙個正規表示式物件 1 re.match 嘗試從字串的開始匹配乙個模式 import re text jgood is a handsome boy,he is cool,clever,and so on m re.match r w s tex...