使用“|”的TypeError在re.search(“RE”|“RE”|“RE”,字符串)

时间:2018-03-17 21:12:08

标签: python regex

根据文件,“|”可用于创建匹配由“|”分隔的任一模式的正则表达式。

我正在尝试使用以下内容来查看move是否包含与“UP”“DOWN”“LEFT”“RIGHT”匹配的字符串:

moves = input("UP 9")
m = re.search("UP"|"DOWN"|"LEFT"|"RIGHT", moves)

但我一直得到"TypeError: unsupported operand type(s) for |: 'str' and 'str'"。怎么解决?

我尝试在线查看,但很少有示例显示使用“|”在重新。它是不是出于某种原因常用?

1 个答案:

答案 0 :(得分:4)

不幸的是,这是一个错字,但答案比那更深。

|是按位OR运算符。它仅针对整数定义,而不是字符串。另一方面,"|"字符(注意引号)是正则表达式 OR 管道,用于指定模式的连接。

总之,|需要在模式字符串内,而不是在外部。

m = re.search("UP|DOWN|LEFT|RIGHT", moves)

有关正则表达式迷你语言中可用的各种结构的更多信息,请参阅官方Regular Expression HOWTO。关于Regex Metacharacters的小节,特别是(解释OR管道的使用等)应该是有帮助的。