'^'字符匹配Python正则表达式中的'<'和'>'

use*_*982 1 python regex python-2.7

我想对阵*=,&=,+=,-=,|=,和^=正则表达式,但由于某些原因,下面的图案,可同时接收<=>=:

modifyPat = re.compile('\s*[&\|\*/%\+-^]*=[^=]*')
Run Code Online (Sandbox Code Playgroud)

我做了一些挖掘,发现问题出现是由于^在模式中包含了字符.例如,如果我删除^下面的模式中的as,我会得到预期的匹配行为,但当然会失去能力匹配^=:

modifyPat = re.compile('\s*[&\|\*/%\+-]*=[^=]*')
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,是否有任何方法可以包括^角色,以便匹配^=而不是匹配<=>=我想要的?

tad*_*man 6

定义方式集有很多自由度,并且有自己的metasyntax:

[+-^]
Run Code Online (Sandbox Code Playgroud)

这意味着之间的所有字符+,并^在ASCII表,这是他们中的很多,包括<>以及所有的信件.

要解决这个问题:

[\+\-\^]
Run Code Online (Sandbox Code Playgroud)

即使不是非常必要,也可以逃避任何不规则的事情.