我想要一个正则表达式,它会在每"."
分割一个字符串,除非"."
前面有一个数字后面跟着一个数字。例如:
"hello world.foo 1.1 bar.1"
==> ["hello world","foo 1.1 bar", "1"]
我目前有:
"(?<![0-9])\.(?!\d)"
但它给出了:
["hello world", "foo 1.1 bar.1"]
但它没有找到最后一个"."
有效。
答案 0 :(得分:3)
非|的方法:
(?<![0-9](?=.[0-9]))\.
答案 1 :(得分:1)
如果.
前面没有数字,或者数字没有成功,则在In [18]: re.split(r'(?<!\d)\.|\.(?!\d)', text)
Out[18]: ['hello world', 'foo 1.1 bar', '1']
上拆分:
{{1}}
答案 2 :(得分:1)
那是因为只有其中一个断言必须失败才能使整个表达式失败。试试这个:
"(?<![0-9])\.|\.(?!\d)"
答案 3 :(得分:0)