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