【发布时间】:2016-07-28 15:39:10
【问题描述】:
我正在努力使用多个匹配项进行多行正则表达式。
我的数据由换行符/换行符分隔,如下所示。如果我单独测试,我的模式与这些行中的每一行匹配。我怎样才能匹配所有出现的事件(特别是数字?
我读到我可以/应该以某种方式使用 DOTALL(可能使用 MULTILINE)。这似乎与任何字符(也包括换行符)匹配,但不确定任何最终的副作用。不想让它匹配一个整数或其他东西,最后给我格式错误的数据。 任何有关这方面的信息都会很棒。
我真正需要的是一些帮助来使这个示例代码工作。我只需要从数据中获取数字。
当我在前一个案例中只需要一个特定匹配并且不完全确定我现在应该使用哪个函数(finditer、findall、search 等)时,我使用了 re.fullmatch。
感谢您的任何帮助:)
data = """http://store.steampowered.com/app/254060/
http://www.store.steampowered.com/app/254061/
https://www.store.steampowered.com/app/254062
store.steampowered.com/app/254063
254064"""
regPattern = '^\s*(?:https?:\/\/)?(?:www\.)?(?:store\.steampowered\.com\/app\/)?([0-9]+)\/?\s*$'
evaluateData = re.search(regPattern, data, re.DOTALL | re.MULTILINE)
if evaluateString2 is not None:
print('do stuff')
else:
print('found no match')
【问题讨论】:
标签: python regex python-3.x