正则表达式,用于使用正向提前或向后提前

时间:2018-10-19 06:19:31

标签: python regex python-3.x augmented-assignment

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

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

我有一种预感,可以使用正向或反向正向消除多次出现的'='。因此,我的第一个搜索内容是Python参考手册中的“语法”部分。即使在那里,“ =”也会出现多次:

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

这是可以理解的,因为标准的BNF不包含正向或反向向前看。

接下来,当我键入此问题时,我经历了SO本身给出的建议,但搜索并未使我接近预期的交汇点。是否可以将表达式缩小为:

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

1 个答案:

答案 0 :(得分:2)

将单个字符放入一个字符集中,并与具有两个相同字符的其他选项交替使用,因此您也可以将它们放入一个字符集中(在一个组内,以便可以使用反向引用)。将以上所有内容归为一组,并以Date()结尾:

=

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

不需要环顾四周。