python - 在 python 中使用正则表达式查找字符串

标签 python regex mediawiki

我正在尝试查找字符串 s 的子字符串,以 {{Infobox 开头并以 }} 结尾。我尝试使用正则表达式执行此操作,但没有得到任何结果。我认为错误出在我的正则表达式中,但由于我对正则表达式很陌生,所以我希望有人可以帮助解决这个问题。字符串 s 例如:

s = '{{blabla}}{{Infobox persoon Tweede Wereldoorlog| naam=Albert Speer| afbeelding=Albert Speer Neurenberg.JPG}}{{blabla}}'

result = re.search('(.*)\{\{Infobox (.*)\}\}(.*)', s)
if result:
    print(result.group(2))

最佳答案

您可以使用惰性点匹配,因为您的定界符不是单符号定界符,并将您需要的内容捕获到第 1 组中:

import re
p = re.compile(r'\{\{Infobox\s*(.*?)}}')
test_str = "{{blabla}}{{Infobox persoon Tweede Wereldoorlog| naam=Albert Speer| afbeelding=Albert Speer Neurenberg.JPG}}{{blabla}}"
match = p.search(test_str)
if match:
    print(match.group(1))

参见 IDEONE demo

如果您使用否定字符类,信息框内的任何 {} 都将阻止匹配整个子字符串。

此外,由于您似乎不需要您需要的子字符串前后的子字符串,因此您根本不需要匹配(或捕获)它们(因此,我删除了它们)。

关于python - 在 python 中使用正则表达式查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33100481/

相关文章:

python - 查找第n个 '|'之后的子串

python - 将 Excel 文件中的数据转换为 Python 字典

PHP:检查无效字符(除 a-z、A-Z、0-9、#、-、.、$ 之外的所有字符)的最快方法?

python - 正则表达式总是会得到 if there

python - 如何使用 python -m json.tool 包含\n

javascript - Python 和 Node 之间的 Diffie-Hellman key 交换失败,并出现错误“提供的 key 太大”

javascript - 使用正则表达式从url中提取参数值

php - MediaWiki CSS 未加载,MIME 类型错误

ubuntu - MediaWiki 1.22.3 中的文件上传错误 - 无法创建目录 "mwstore://local-backend/local-public/7/70"

http - 无法获取 MediaWiki api 的编辑 token