我正在尝试在正则表达式中与Counter()
,*=
,&=
,+=
,-=
和|=
进行匹配,但出于某种原因,以下模式同时接受^=
和<=
:
>=
我做了一些挖掘,发现由于在模式中包含modifyPat = re.compile('\s*[&\|\*/%\+-^]*=[^=]*')
字符而出现问题。例如,如果我删除^
,如下面的模式,我会得到预期的匹配行为,但当然会失去与^
的匹配能力:
^=
这里发生了什么,是否有任何方法可以包含modifyPat = re.compile('\s*[&\|\*/%\+-]*=[^=]*')
字符以匹配^
而不匹配^=
和<=
。希望?
答案 0 :(得分:6)
定义方式集有很多自由度,并且有自己的方法:
[+-^]
这表示ASCII表格中+
和^
之间的所有字符,其中很多字符包括<
和>
以及所有字母。
修复它:
[\+\-\^]
即使不是非常必要,也可以逃避任何不规则的事情。