re模塊 正則表達式,對字符串進行模糊匹配


# re模塊 正則表達式,對字符串進行模糊匹配
import re

# 元字符:. ^ $ * + ? {} [] | () \

# . 代表任意的一個符號,除了\n

# ^ 代表必須是從字符串的開頭進行匹配

# $ 代表必須是從字符串的結尾進行匹配

# * 代表按*左邊的字符進行匹配,包含0-無窮次 默認貪婪匹配,按最多的進行匹配

# + 代表按+左邊的字符進行匹配,包含1-無窮次 默認貪婪匹配,按最多的進行匹配

# ? 代表按?左邊的字符進行匹配,包含0-1次 默認貪婪匹配,按最多的進行匹配

# {} 定義匹配的范圍 默認貪婪匹配,按最多的進行匹配
# {0, }  表示0到窮次 相當於*
# {1, }  表示1到無窮次,相當於+
# {0,1}  表示0到1次,相當於?

# 將貪婪匹配改為惰性匹配,只需要在上面幾個元字符后加?

# [] 字符集 字符集中的字符都是或的作用,在字符集有功能的符號是 - ^ \
# - 代表左邊的字符到右邊的字符
# [a-z] 代表a到z
# [A-Z] 代表A到Z
# [0-9] 代表0到9
# ^ 代表非
# [^a-z] 代表非a-z的所有字符

# \ 代表轉義符,后面跟元字符則去除特殊功能,后面跟某些字符實現特殊功能
# \d 匹配任何十進制數;相當於[0-9]
# \D 匹配任何非數字字符;相當於[^0-9]
# \s 匹配任何空白字符; 相當於[\t\n\r\f\v]
# \S 匹配任何非空白字符; 相當於[^\t\n\r\f\v]
# \w 匹配任何字母數字字符與下划線;相當於[a-zA-Z0-9_]
# \W 匹配任何非字母數字字符與下划線;相當於[^a-zA-Z0-9_]
# \b 匹配任何一個特殊字符邊界;如空格 & # 等
# 因為的python中,\b代表轉義字符退格,當引入re模塊想使用\b來匹配任何一個特殊字符邊界時,應當使用\\b

Python中的轉義字符有

# 匹配句子中單詞的I(非單詞中的I)
re.findall('I\\b', 'Hello, I am LIST')  # 代表匹配'I '
# 或者
re.findall(r'I\b', 'Hello, I am LIST')  # r代表使用原生字符串,字符串中的內容不作任何轉義

# 求數學表達式最里層的括號中的字符
re.findall('\([^()]*\)', '12+(34*6+2-5*(2-1))')   # 以(開對,以)結尾,中間不包含()的所有字符

# | 代表匹配左邊的字符或右邊的字符

# () 分組,將()中的字符作為一個整體
# (?P<分組名>正則) 命名分組,將取到的結果放到相應的分組名下
# 取出人名及年齡並放到命名的分組name和age中
mygroup = re.search('(?P<name>[a-z]+)(?P<age>\d+)', 'alex36wusir34xialv33')
print(mygroup.group('name'))
print(mygroup.group('age'))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM