<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      python正則表達式

      正則表達式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為"元字符"),可以用來描述和匹配字符串的特定模式。

      在 Python 中,使用 re 模塊來處理正則表達式。

      import re
      # re.match() 從字符串的開始進行匹配,如果開始部分匹配成功就返回匹配對象,否則返回None
      m = re.match('foo', 'food') # 返回匹配對象
      print(m) # <_sre.SRE_Match object; span=(0, 3), match='foo'>

      m = re.match('foo', 'fas')
      print(m) # None

      # re.search() 掃描字符串,如果找到匹配就返回匹配對象,否則返回None
      m = re.search('foo','hellofood')
      print(m)

      m = re.search('foo','hello')
      print(m)

      # re.findall() 查找所有匹配,返回所有匹配結果的列表
      m = re.findall('ab','abcdabcdabcd')
      print(m)

      # re.finditer() 查找所有匹配,返回所有匹配結果的一個iterator
      m = re.finditer('ab', 'abcdabcdabcd')
      print(m)
      for i in m:
      # print(i)
      print(i.group())

      # re.sub() 用于替換匹配的字符串。將匹配到的字符串替換為另一個字符串
      text = 'yeah, but no, but yeah, but no'
      print(re.sub('but','AND',text))

      接下來將重點描述re.natch()的使用:

      re.match(pattern, string)

      其中,pattern是正則表達式,是我們匹配時的標準,string是待匹配字符串。re.match() 從字符串的開始進行匹配,如果開始部分匹配成功就返回匹配對象,否則返回None。

      首先是單字符的匹配:

       

      # .匹配任意一個字符 除了\n
      ret = re.match('.','M')
      print(ret.group())
      
      ret = re.match('t.o', 'two')
      print(ret.group())
      
      ret = re.match('h', 'hellopython')
      print(ret.group())
      
      ret = re.match('H', 'Hellopython')
      print(ret.group())
      
      # 匹配[]中列舉的字符
      ret = re.match('[hH]', 'hellopython')
      print(ret.group())
      
      ret = re.match("[hH]ello Python","Hello Python")
      print(ret.group())
      
      ret = re.match("[0123456789]Hello Python","6Hello Python")
      print(ret.group())
      
      ret = re.match("[0-9]Hello Python","6Hello Python")
      print(ret.group())
      
      # [a-z], [0-9],[a-zA-Z],[0-35-9]0到3和5到9
      ret = re.match("[0-35-9]Hello Python","6Hello Python")
      print(ret.group())
      
      # 5[3-9] 匹配 53 到 59。
      # 6[0-1] 匹配 60 到 61。
      pattern = r'^(5[3-9]|6[0-1])Hello Python'
      text = "57Hello Python"
      ret = re.match(pattern, text)
      print(ret.group() if ret else "No match")
      
      # \d 匹配數字,即0-9
      ret = re.match("python\d","python2停止維護了")
      print(ret.group())
      
      ret = re.match("python\d","python3發布了")
      print(ret.group())
      
      # \D 匹配非數字,即不是數字
      ret = re.match('\D','f')
      print(ret.group())
      
      # \s 匹配空白,即空格 tab鍵
      ret = re.match("hello\sworld", "hello world")
      print(ret.group())
      
      # ret = re.match('hello\sword','hello\tworld')  # 這句話會報錯 二者不匹配
      ret = re.match("hello\sworld", "hello\tworld")
      print(ret.group())
      ret2 = re.match("hello\sworld", "hello\tworld")
      if ret2:
          print("雙引號匹配成功:", ret2.group())  # 輸出: hello\tworld
      else:
          print("雙引號匹配失敗")
      
      # \S 匹配非空白
      match_obj = re.match("hello\Sworld", "hello&world")
      if match_obj:
          result = match_obj.group()
          print(result)
      else:
          print("匹配失敗")
      
      match_obj = re.match("hello\Sworld", "hello$world")
      if match_obj:
        result = match_obj.group()
        print(result)
      else:
          print("匹配失敗")
      
      # \w 匹配非特殊字符,即a-z A-Z 0-9 _ 漢字
      match_obj = re.match("\w", "A")
      if match_obj:
        # 獲取匹配結果
        print(match_obj.group())
      else:
        print("匹配失敗")
      
      # \W 匹配特殊字符 即非字母 非數字 非漢字
      match_obj = re.match("\W", "&")
      if match_obj:
        # 獲取匹配結果
        print(match_obj.group())
      else:
        print("匹配失敗")

      多字符的匹配:

      # * 匹配前一個字符出現0次或者無限次
      ret = re.match("[A-Z][a-z]*","M")
      print(ret.group())
      
      ret = re.match("[A-Z][a-z]*","MnnM")
      print(ret.group())
      
      ret = re.match("[A-Z][a-z]*","Aabcdef")
      print(ret.group())
      
      # + 匹配前一個字符出現1次或者無限次
      match_obj = re.match("py.+n", "python")
      if match_obj:
        print(match_obj.group())
      else:
        print("匹配失敗")
      
      # ?匹配前一個字符出現1次或者0次 要么有1次要么沒有
      match_obj = re.match("https?", "http")
      if match_obj:
        print(match_obj.group())
      else:
        print("匹配失敗")
      
      # {m}匹配前一個字符出現m次
      ret = re.match("[a-zA-Z0-9_]{6}","12a3g45678")
      print(ret.group())
      
      # {m,n}匹配前一個字符出現從m到n次
      ret = re.match("[a-zA-Z0-9_]{8,20}","1a2b3c4d5e6f7g8h9ijklmn")
      print(ret.group())
      
      info = "<div>1111</div><div>2222</div>"
      
      # 貪婪模式
      ret = re.match("<div>.*</div>", info)
      print(ret.group())
      
      # 非貪婪模式
      ret = re.match("<div>.*?</div>", info)
      print(ret.group())

      匹配開頭或結尾:

      # 匹配開頭結尾
      # ^ 匹配字符串開頭  \d 以數字開頭復習: .代表任意 *代表多次
      ret = re.match("^\d.*", "6hello")
      print(ret.group())
      
      # $匹配字符串結尾  \d以數字結尾
      ret = re.match(".*\d$", "hello6")
      print(ret.group())
      
      ret = re.match("^\d.*\d$", "6hello6")
      print(ret.group())
      
      # [^指定字符] 表示除了指定字符都匹配
      ret = re.match("[^aeiou]", 'ah')
      print(ret.group() if ret else "匹配失敗")
      
      # 或的使用
      ret = re.match("mysql|flask","python")
      print(ret.group() if ret else "匹配失敗")
      
      # 分組的使用 (ab)    將括號中字符作為一個分組
      # \w{4,10} 4-10個字符
      ret = re.match("\w{4,10}@(163|126|qq|gmail)\.com","hello@qq.com")
      # ret = re.match("\w{4,10}@(163|126|qq|gmail)\.com","llo@qq.com")
      print(ret.group() if ret else "匹配失敗")
      
      ret = re.match(".+:1\d{4,10}", "電話:10086")
      print(ret.group() if ret else "匹配失敗")

      還有分組,標識符等。

       

      posted @ 2025-05-11 18:56  涼天  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品婷婷色一区二区三区| 亚洲爆乳少妇无码激情| 红桃视频成人传媒| 日本久久一区二区三区高清| 一区二区三区激情都市| 亚洲码亚洲码天堂码三区| 国产一区二区三区导航| 日本高清中文字幕免费一区二区| 国产精品爆乳奶水无码视频免费| 色综合中文综合网| 久久久久青草线蕉综合超碰| 黑人玩弄人妻中文在线| 九九热爱视频精品视频| 原阳县| 国产激情第一区二区三区| 国产四虎永久免费观看| 日本高清色WWW在线安全| 亚洲综合色网一区二区三区| 狠狠躁日日躁夜夜躁欧美老妇| 成人污视频| 老女老肥熟国产在线视频| 日本黄韩国色三级三级三| 欧美福利电影A在线播放 | 亚洲欧美中文字幕日韩一区二区| 国产精品老熟女露脸视频| 日本欧美大码aⅴ在线播放| 久久国产精品色av免费看| 亚洲成人精品综合在线| 影音先锋啪啪av资源网站| 国产免费午夜福利在线播放| 中文字幕在线看视频一区二区三区 | 亚洲国产精品一二三四区| 亚洲色成人一区二区三区人人澡人人妻人人爽人人蜜桃麻豆 | 久久亚洲国产精品久久| 欧美日韩中文字幕视频不卡一二区 | 亚洲国产精品综合色在线| 十八禁午夜福利免费网站| 国产精品一区二区三区四区| 日韩av一区二区三区在线| 国产精品自在自线视频| 青青在线视频一区二区三区|