python re.X vs automagic线延续

2024-05-14 08:15:43 发布

您现在位置:Python中文网/ 问答频道 /正文

Python提供了一个标志(^{} or ^{})以允许对正则表达式进行注释:

a = re.compile(r"""\d +  # the integral part
                   \.    # the decimal point
                   \d *  # some fractional digits""", re.X)

但是,使用自动字符串连接,您可以实现基本相同的功能:

^{pr2}$

我不认为我真的见过后一种形式的使用,但是(IMHO)它使正则表达式更易于阅读(我不需要试图弄清楚哪些空白被转义,哪些空白被忽略了。。。我的评论被我的文本编辑器格式化为评论。有没有理由更喜欢前者而不是后者或visa诗句?或者这真的是番茄番茄的问题?在


Tags: orthere标志评论some空白point
2条回答

前者可以放在自己的文本文件中,然后在不借助literal_eval的情况下加载。对于复杂的REs(或选择多个不同的REs),这可能是一个好处。在

我觉得是西红柿番茄汤。“x”正则表达式标志并不是python所独有的,它在串联操作更为冗长的语言中可能更有意义(想象一下+到处都在增加噪音)。在

我还考虑到这样一个事实,即它强制您正确地指出表达式中的哪个空格是一个积极的东西,因为它消除了任何歧义,并使您很难忽略regexen中依赖于空白的异常。在

最后一个论点是,您可以将完全相同的模式复制到另一种具有相同标志的语言上,这样就可以轻松地工作了。在后一种情况下,我必须删除很多r和撇号。在


顺便说一句,您可以始终将连接re.X选项。在

相关问题 更多 >

    热门问题