python正则表达式匹配一个字符串,相邻出现3个或以上子串为列表中 ["AB","EF", "GD","BQ","G四"]的任意字符串,列中字串可以任意字符。
正则表达式构建
- 列出所有子串:首先,将列表中的所有子串连接成一个字符串,每个子串之间使用"或"(|)分隔。这表示匹配列表中的任一子串。
- 匹配3次或以上:使用量词{3,}紧跟在子串的非捕获组后面,表示这个模式需要连续出现3次或更多次。
import re
# 子串列表
substrings = ["AB","EF", "GD","BQ","G四"]
# 将列表中的子串转换为正则表达式的"或"(|)格式
substrings_pattern = '|'.join(substrings)
# 构建完整的正则表达式,使用非捕获组(?:...)和量词{3,}来匹配子串连续出现3次或以上
pattern = r'(?:' + substrings_pattern + r'){3,}'
# 示例文本
text = "这是一些文本G四GDAB结束"
# 执行匹配
matches = re.findall(pattern, text)
# 打印匹配结果
for match in matches:
print(match)