gpt4 book ai didi

python - 在 Python 语法中查找字符串前缀的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:44 26 4
gpt4 key购买 nike

当你在 Python 中定义一个字符串时,它可能有一个前缀,它是字母 bru 的任意组合,大写或小写,顺序不限,每个字母最多一个,bu不能同时出现。然后是 ',或 ",或 ''',或 """

我有兴趣制作一个正则表达式来捕获字符串的开头,直到开头的引号。匹配示例:

br'
'
r"""
Ur'
B"
"

每一个都应该匹配。

如何编写正则表达式来匹配这些?

最佳答案

正则表达式不能“以任何顺序最多一个”,所以我们必须预先生成可能的前缀组合。

幸运的是,我们可以让它不区分大小写,我们可以让引号成为一个单独的表达式;我们最终得到了

import re

reg = re.compile("((?:b|u|r|br|ur|rb|ru)?(?:\'(?:\'\')?|\"(?:\"\")?))", re.I)

我们可以这样测试

def test_reg():
good_tests = ["br'", "'", 'r"""', "Ur'", 'B"', '"']
for t in good_tests:
assert reg.match(t).group(0) == t, "Failed good test {}".format(t)

bad_tests = ["bU'", "bb'", 'Uru"']
for t in bad_tests:
assert reg.match(t) is None, "Failed bad test {}".format(t)

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com