如何使用正则表达式中的变量的正则表达式来表示整数

时间:2018-05-16 15:36:07

标签: python regex

我正在使用 xml解析器from lxml import etree)来获取用java脚本编写的正则表达式。所以我把它们作为一个字符串来获取。

例如:

 7|14|103|14[598]|12[0-9]|

所以如何获得所有数字的匹配,例如7 14 103 145 149 120 .....

1 个答案:

答案 0 :(得分:0)

让我试着在这里阅读你的想法 - 你有一个正则表达式模式作为一个字符串,你想用它来找到另一个字符串中的匹配?您可以直接使用您的模式:

import re

pattern = "7|14|103|14[598]|12[0-9]"  # your fetched regex pattern
target = "7 14 103 145 149 120..."  # a text to match against

print(re.findall(pattern, target))  # or re.match() if you just need a match or more info
# ['7', '14', '103', '14', '14', '120']

然而,问题在于模式本身,因为它从左到右搜索,因此当前面的模式中有14[598]时,您无法获得14匹配 - 有点多余。再说一次,如果您从外部来源获取正则表达式模式,那么您就无法控制它。