有一个带有数字,字母和特殊字符的文字。 我需要获得该文本的精确子字符串,其中任何数量的spec.chars子集可以与一定数量(例如,5个或更多)的数字组合。除了数字和spec.symbols之外,子字符串不能有任何其他内容(因此,任何字母符号或非子集spec.symbols都会破坏它)。 这是一个例子:
Special characters: '[,%> ]'
Input: 'out >>> 23451 %% 27, where: 1155 >> 4+ %9 and 5444 off'
Output: [' >>> 23451 %% 27, ', ' 1155 >> 4']
像'([0-9]{5,}|[,%> ])'
这样的正则表达式显然无效。
答案 0 :(得分:2)
我可能会误解你,但也许是这样的......
>>> import re
>>> s = 'out >>> 23451 %% 27, where: 1155 >> 4+ %9 and 5444 off'
>>> re.findall(r'(?:[,%> ]*\d){5}[\d,%> ]*', s)
[' >>> 23451 %% 27, ', ' 1155 >> 4']
答案 1 :(得分:1)