我有以下字符串:
s ='这个。是sparta 1.2版本。请检查。'
我想基于点分割它,而忽略小数字。 所以,必需的输出:
['这','是sparta 1.2版','请检查']
我试过以下:
re.split(r'\.(?!([\d+\.\d+]))',s)
我得到的输出是:
['这',无,'是sparta 1.2版','','请检查',无,'']
为什么我在这里获得None和空字符串?我只想要分裂字符串,即
['这','是sparta 1.2版','请检查']
请在这里建议整改。
答案 0 :(得分:4)
答案 1 :(得分:0)
由于几乎拥有你想要的东西,你可以解析当前输出以删除Nones和空字符串。
这可以使用列表理解在一行中完成:
FilteredList = [ itm for itm in UnfilteredList if itm is not None and len(itm)>0]
答案 2 :(得分:0)
re.split(r'(?<=\D)\.(?=.)|(?<=\d)\.(?=\D)', item)
这会将字符串 item 用点分隔,并将忽略小数点。
在此链接中找到正则表达式的备忘单: https://www.dataquest.io/blog/regex-cheatsheet/