>>> 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
'周点评丨铃木退出中国,宁德时代成创业板第一大股'
>>>
为啥总是匹配不到“|” 前的数文字呢
匹配
'|'
本身也要转义,因为在正则里它是“或”的意思。另外匹配一个或多个可见字符用.+
。单个.
只能匹配一个字符。