我正在使用 xml解析器(from lxml import etree
)来获取用java脚本编写的正则表达式。所以我把它们作为一个字符串来获取。
例如:
7|14|103|14[598]|12[0-9]|
所以如何获得所有数字的匹配,例如7 14 103 145 149 120
.....
答案 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
匹配 - 有点多余。再说一次,如果您从外部来源获取正则表达式模式,那么您就无法控制它。