正規表示式基礎

2021-08-01 02:46:37 字數 2661 閱讀 6350

正規表示式是學習python爬蟲的必要條件,所以需要先做好準備打好表示式的基礎,開始吧

# -*- coding: utf-8 -*-

import re

line = "helloworld123"

# ^表示以什麼開頭

# .表示任意字元

# *表示乙個字元可以重複任意零次或多次

# $符號表示結尾字元

regexstr = "^h.*3$"

if re.match(regexstr, line):

print("yes") # 輸出yes

先來看看什麼是貪婪匹配,正規表示式預設是從最後面開始匹配的

# 提取兩個h中間的字串

line = "heeeeeeeellohhaa"

regexstr = ".*(h.*h).*"

# 括號表示我們要提取的字串

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # 輸出hh,預設從最後面匹配

可以看到正規表示式,預設是從最右邊匹配的,我們可以使用? 設定從最左邊開始匹配,非貪婪匹配,及匹配到第乙個符合條件的為止,否則預設匹配到最後乙個

line = "heeeeeeeellohhaa"

regexstr = ".*?(h.*?h).*"

#? 設定從最左邊開始匹配,非貪婪匹配,及匹配到第乙個符合條件的為止,否則預設匹配到最後乙個

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # 輸出 heeeeeeeelloh

line = "heeeeeeeellohhhdhaa"

regexstr = ".*(h.+h).*"

# 括號表示我們要提取的字串

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # hdh 可以看到預設從右邊匹配的

line = "heeeeeeeellohhhdhaa"

#regexstr = ".*(h.h).*"

# 表示中間出現的字元個數

#regexstr = ".*(h.h).*"

# 表示中間出現的字元個數是4次或4次以上

regexstr = ".*(h.h).*"

# 表示中間出現的字元個數最少2次最多4次

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1))

line = "helloworld123"

regexstr = "(helloworld123|hello)"

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # helloworld123

表示匹配中括號內的任意字元,需要注意的是在裡的所有正規表示式字元,都是沒有特殊含義的

line = "18700987865"

regexstr = "(1[48357][0-9])"

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # 18700987865

\s表示匹配乙個非空格的字元

line = "hello world"

regexstr = "(hello\sworld)"

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # hello world

line = "***出生於2023年"

regexstr = ".*?(\d+)年"

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1)) # 1992

line = "***出生於2023年3月22日"

# line = "***出生於1992/3/22"

# line = "***出生於1992-3-22"

# line = "***出生於1992-03-22"

# line = "***出生於1992-03"

regexstr = ".*出生於(\d[年/-]\d([月/-]\d|[月/-]$|$))"

match_obj = re.match(regexstr, line)

if match_obj:

print(match_obj.group(1))

正規表示式 1 正規表示式基礎

1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...

正規表示式基礎

限定符 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹配非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 匹配正浮點數 d...

正規表示式基礎

元字元 描述 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾,但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如正規...