I want to use python re.split() to split a string into individual words by spaces, commas and periods. But I don’t want "1,200" to be split into ["1", "200"] or ["1.2"] to be split into ["1", "2"].
Example
l = "one two 3.4 5,6 seven.eight nine,ten"
The result should be ["one", "two", "3.4", "5,6" , "seven", "eight", "nine", "ten"]
Use a negative lookahead and a negative lookbehind:
In other words, you always split by
\s(whitespace), and only split by commas and periods if they are not followed(?!\d)or preceded(?<!\d)by a digit.DEMO.
EDIT: As per @verdesmarald comment, you may want to use the following instead:
This will split
"1.2,a,5"into["1.2", "a", "5"].DEMO.