gpt4 book ai didi

python - 使用正前瞻或后顾的增强赋值操作的正则表达式

转载 作者:行者123 更新时间:2023-12-01 01:30:51 25 4
gpt4 key购买 nike

我使用以下正则表达式来搜索和匹配增强赋值运算符:

AUG_ASSIGN = r'\+=|\-=|\*=|@=|/=|%=|/@=|&=|\|=|\^=|\<\<=|\>\>=|\*\*=|//='

我有预感,可以使用正向前瞻或正向后向消除多次出现的“=”。所以,我的第一个搜索是Python引用手册中的语法部分。即使在那里,“=”也会出现多次:

augop:           "+=" | "-=" | "*=" | "/=" | "%=" | "**="
| ">>=" | "<<=" | "&=" | "^=" | "|="

可以理解,因为标准 BNF 不包括正向前瞻或后向查看。

接下来,当我输入这个问题时,我浏览了 SO 本身给出的建议,但我的搜索并没有让我接近我预定的会面点。是否可以将表达式缩小为:

AUG_ASSIGN = <set of all binary operators>(?=\=)

最佳答案

将单个字符放入一个字符集中,并与其他有两个相同字符的选项交替,这样你也可以将它们放入一个字符集中(在一个组内,以便相同的字符可以再次与反向引用)。将以上所有内容放在一组中,并以 = 结尾:

(?:[+\-*@&/%^|^]|([*/><])\1)=

https://regex101.com/r/JA84zS/4

无需环顾四周。

关于python - 使用正前瞻或后顾的增强赋值操作的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52886821/

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