【发布时间】:2022-01-13 01:49:22
【问题描述】:
Perl 使得使用/x 修饰符构造readable regular expressions 变得很容易。此修饰符允许编写正则表达式字符串并忽略这些字符串中的所有空格。换句话说,正则表达式的逻辑部分可以用空格甚至回车分隔,从而提高可读性。在 Python 中,我看到的唯一方法是构造这样的正则表达式字符串,在中间步骤中从中删除空格,然后使用生成的字符串进行匹配。有没有更优雅的方式来做到这一点?
【问题讨论】:
-
我不知道任何没有扩展修饰符的普通引擎。考虑到所有事情,您都需要一个自动执行压缩/扩展的正则表达式格式化程序。这是一个很好的regexformat.com。他们将在下周发布具有内联测试和令人难以置信的宏功能的版本 5。
-
请注意,任何支持修饰符的引擎通常都支持它们
'inline',因此对于扩展模式,正则表达式字符串的第一个字符将是修饰符构造"(?x) .."。修饰符可以在任何地方。阅读修饰符,拯救你的大脑。 -
@sln 感谢您的评论。我已经开始明白你的意思了。
-
@sln Python 要求在开头插入
(?x)(空格除外)。如果稍后插入,则行为未定义。