根据文档,"|“可用于创建一个正则表达式,该正则表达式与由"|”分隔的任一模式匹配。
我尝试使用下面的代码来查看moves是否包含与“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'"。如何修复它?
我尝试在网上查找,但很少有示例显示"|“在re中的用法。它是不是因为某些原因而不是常用的?
发布于 2018-03-18 05:14:29
不幸的是,这是一个打字错误,但答案比这更深一点。
|是按位OR运算符。它仅为整数定义,而不是字符串。另一方面,"|"字符(请注意引号)是正则表达式OR管道,用于指定模式上的关联。
总之,|需要在模式字符串内,而不是在模式字符串之外。
m = re.search("UP|DOWN|LEFT|RIGHT", moves)有关正则表达式迷你语言中可用的各种构造的更多信息,请参阅官方Regular Expression HOWTO。特别是关于Regex Metacharacters的小节(它解释了OR管道的用法等)应该是有帮助的。
https://stackoverflow.com/questions/49341960
复制相似问题