2014-03-06 92 views
0

我刚开始学习正则表达式,我想实现以下表达式来测试运营商:正则表达式语法误解

parser = re.compile('[\+\-\*/(//)%]$') 

我认为,围绕“//”(floordiv在python运营商)括号将意味着它将被视为该集合中的一个单一元素,而不是parser匹配的字符串是'('和')'而不是'//'。将“//”设置为字符集的独立元素的语法是什么?

回答

2

你真的不能在你的性格类指定//

您需要为此使用替代标记|

例子:

//|[+*/%-]$ 

你应该把//第一,由于交替工程左到右。

2

|允许从它们的集合中的任何选项进行匹配。所以:

parser = re.compile('(//|[+\-*/%])$') 

注意,你不需要逃避+*字符类中 - 唯一的显著人物有\]^之初,和两个字符之间-