!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
string = '123abc123'
pattern = re.compile('\d+')
# result = pattern.match(string) # match 開頭匹配, 只匹配一次
# result = pattern.search(string) # search 全域性匹配, 只匹配一次
# result = pattern.findall(string) # findall 返回是列表,列表中是所有的匹配結果
result = pattern.finditer(string) # finditer 返回是迭代物件,內部存放了匹配物件
for data in result:
print(data)
# print(result)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
string = '123abc'
string_list = ["123abc","123abc123"]
# print(re.findall('\d+',string))
# pattern = re.compile('\d+') #1. 編譯生成匹配規則
# print(pattern.findall(string)) # 2. 匹配資料
pattern = re.compile('\d+')
for string in string_list:
print(pattern.findall(string))
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
string = '''
abcd
abcd
'''pattern = re.compile('a(.*?)d') # 非貪婪 ['bc', 'bc']
pattern = re.compile('a(.*)d') # 貪婪 ['bc', 'bc']
pattern = re.compile('a(.*)d',re.regexflag.s) # dotall模式 ['bcd\n abc']
print(pattern.findall(string))
# 多模式共同支援使用 |
pattern = re.compile('a(.*)d',re.dotall | re.ignorecase)
string = r"ab\ncd"
print(string) # "ab\ncd"
string = "abcd\b\bef"
print(string) # "abef"
再談正規表示式編譯
這些天在探求正規表示式編譯的時候,也看到了之前有些朋友寫的工具,下面有乙個就不錯。基本實現了我所需要的所有功能。但該工具有乙個美中不足,就是無法指定強名稱檔案,以及其他的一些屬性。這可能是我們在編譯的時候很需要的。為此,我修改了該程式,增加了乙個視窗,讓使用者可以隨意設定一些通用選項。如下圖所示 下...
正規表示式 編譯標誌
代表匹配任意單個字元,但是一般情況下 n t字元卻匹配不到。匹配時候加上re.s編譯標誌即可解決問題。import re r1 r qq.com 這裡的 不止是點,代表匹配任意單個字元 re.findall r1,qq.com qq.com re.findall r1,qqxcom qqxcom r...
正規表示式小談
public class testregex w p string words pattern.split email matcher matcher pattern.matcher email if matcher.find words.length 0 return true else retu...