正则表达式匹配包含多个相似术语的完整表达式

时间:2016-11-23 18:35:58

标签: python regex

我有一个字符串。例如:

s = "caption = #1081#1082#1083#1084', '#1087#1088 efiuefiu #23   3456"

我需要找到包含#和4位数的所有表达式,但我需要找到表达式#1081#1082#1083#1084,而不是#1081#1082#1083和{{1像这样分开。

这不起作用;它匹配单个表达式:

#1084

1 个答案:

答案 0 :(得分:3)

您可以查找 #的一个或多个事件,后跟4位数字:

In [1]: import re

In [2]: s = "caption = #1081#1082#1083#1084', '#1087#1088 efiuefiu #23   3456"

In [3]: re.findall(r'(?:#\d{4})+', s)   
Out[3]: ['#1081#1082#1083#1084', '#1087#1088'] 

(?:...)非捕获组,有助于避免匹配所需模式的单个匹配项,而是“专注于更大的图片”。