正規表示式在Python下的基礎應用

2021-08-15 02:29:22 字數 2033 閱讀 9064

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...