正则表达式语法误解

时间:2014-03-06 01:17:04

标签: python regex

我刚开始学习正则表达式,我想实现以下表达式来测试运算符:

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

我认为'//'(python中的floordiv运算符)周围的括号表示它将被视为集合中的一个单独元素,而parser匹配字符串,如'('和')' 并不是 '//'。将'//'设置为字符集的独立元素的语法是什么?

3 个答案:

答案 0 :(得分:2)

|允许匹配其中一组选项。所以:

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

请注意,您无需在字符类中转义+* - 唯一重要的字符是\],{{1}在开始时,^在两个字符之间。

答案 1 :(得分:2)

您无法在角色类中真正指定//

您需要使用替换标记|

示例:

//|[+*/%-]$

您应该先放置//,因为轮换工作从左到右。

答案 2 :(得分:0)

使用

"([Blah]|//)$"

那应该有效