Python 正則表達式


基本字符匹配

  • \s 空白符
  • \w 字母或下劃線
  • \d 任意數字
  • ^ 匹配一行字符串開頭
  • $ 匹配一行字符串的結尾
  • * 匹配0個或多個表達式
  • + 匹配一個或多個表達式
  • . 匹配任意字符(除換行符)
  • ? 非貪婪匹配方式
  • a|b 匹配a或b
  • () 子表達式
  • {} 匹配個數


re模塊


mathch

從頭開始匹配,開頭匹配不成功則匹配失敗,適合用來檢測字符串是否符合正則表達式的規則

result = re.match("^Hello\s\w{10}\s\d\d\d", "Hello zayn_malik 123")
print(result.group())  # 輸出匹配結果
print(result.span())  # 輸出匹配範圍

result = re.match("^Hello\s(\d+)\s\w{10}", "Hello 123 zayn_malik 123")
print(result.group(1))  # 輸出括號裏子表達式的結果
print(result.group())

content = '''Hello 1234 puth 
 demo'''
# re.S使.匹配包括換行符內的所有字符 re.I使大小寫不敏感
result = re.match("^He.*?(\d+).*?demo$", content, re.S)  


掃描整個字符串,返回第一個成功匹配的結果

html = ''' <ul>
            <li class="active" singer="zayn">Let me</li></ul>

result = re.search('<li.*?singer="(.*?)">(.*?)</li>', content, re.S)
print(result.group(1), group(2))  # zayn Let me


findall

搜索整個字符串,返回符合正則表達式的所有內容


sub

修改字符串的內容

content = 'dada13vsnk31231'

result = re.sub("\d+", '', content)
print(content)  # 去掉字符串中的數字


compile

將字符串編譯爲正則表達式對象

content = "2018-10-31 11:29"

pattern = re.compile("\d{2}:\d{2}")
result = re.sub(patter, '', content)
print(result)  # 去掉日期中的時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章