python 正则问题

>>> s="周点评丨铃木退出中国,宁德时代成创业板第一大股"
>>> c=re.findall("(.*)|.*",s)[0]
>>> c
'周点评丨铃木退出中国,宁德时代成创业板第一大股'
>>> c=re.findall("(.*?)|.*",s)[0]
>>> c
''
>>> c=re.findall("(.*)|.*",s)[0]
>>> c
'周点评丨铃木退出中国,宁德时代成创业板第一大股'
>>> c=re.findall("(.*)\|.*",s)[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> c=re.findall("(.*)|.*",s)[0]
>>> c
'周点评丨铃木退出中国,宁德时代成创业板第一大股'
>>> 

为啥总是匹配不到“|” 前的数文字呢

阅读 1.3k
1 个回答

匹配'|'本身也要转义,因为在正则里它是“或”的意思。另外匹配一个或多个可见字符用.+。单个.只能匹配一个字符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题