正規表示式編譯和DOTALL小結

2022-05-21 12:03:10 字數 1547 閱讀 6570

!/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...