Python 3.6 正則表示式一
阿新 • • 發佈:2019-01-06
""" 正則表示式的主要功能就是匹配字串 """ import re # 基本用法 ret = re.findall('world', "hello world**Worldworld") # 查詢制定字串,以list形式返回 print(ret) """ 原字元 """ # 1. '.' 萬用字元:代表任意字元,一個點一個字元 ret = re.findall('w...d', "hello world") print(ret) # ['world'] ret = re.findall('w...d', "hello w\nrld") print(ret) # [] 除了\n其他都行,當然也可以通過修改findall的第三個引數去修改成連\n都能匹配 # 2. '^' 尖角符:必須從字串的起始位置開始匹配,不考慮後續字串中是否存在 ret = re.findall('^w...d', "hello world") print(ret) # [] ret = re.findall('^w...d', "worldhello world") print(ret) # ['world'] # 3. '$' 只從最後開始匹配 ret = re.findall('w...d', "hello world!!") print(ret) # ['world'] ret = re.findall('w...d$', "hello world!!") print(ret) # [] ret = re.findall('w...d$', "hello world!!world") print(ret) # ['world'] # ************************************************************* # 4. '*' 重複匹配 允許*之前的一個字元重複多次 ret = re.findall('hello*world', 'hellooooooworld') print(ret) # ['hellooooooworld'] ret = re.findall('hello.*world', '
[email protected]@sssworld') # 如果我使用萬用字元'.'他就能匹配任意字元 print(ret) # ['[email protected]@sssworld'] # 5. '+' 也是重複匹配 但是至少得有一個 ret = re.findall('hello*world', 'hellworld') print(ret) # ['hellworld'] ret = re.findall('hello+world', 'hellworld') print(ret) # [] # 也就是說'+'號之前的o,在目標字串裡必須出現一次,但是'*'號允許一次也不出現 # 6. '?' 還是重複匹配,但是隻能是0次或者1次多了就不行 ret = re.findall('hello?world', 'hellworld') print(ret) # ['hellworld'] ret = re.findall('hello?world', 'helloworld') print(ret) # ['helloworld'] ret = re.findall('hello?world', 'helloooworld') print(ret) # [] # 7. '{}' 大括號也是重複匹配,但是匹配幾次自己可以設定 ret = re.findall('a{5}b', 'aaaabbaaa') # 要求a重複5次 print(ret) # [] ret = re.findall('a{5}b', 'aaaaabbaaa') print(ret) # ['aaaaab'] ret = re.findall('a{1,3}b', 'ba***aab***aaab***aaaaaaaabaaa') print(ret) # ['aab', 'aaab', 'aaab']