输入:
x = "121, 1238,\nxyz,\n 123abc \n\rabc123"
我想用分隔符",", "\n", "\r", "\s"
分割这个字符串以获得输出
['121', '1238', 'xyz', '123abc', 'abc123']
无论我尝试什么,分隔符都被接受为单个字符,而不是字符的组合。 e、 g
一,
re.split("\n|,|\s|\r", x)
输出
['121', '', '1238', '', 'xyz', '', '', '123abc', '', '', 'abc123']
re.split("\n\s|,|\s|\r", x)
输出
['121', '', '1238', '', 'xyz', '', '123abc', '', 'abc123']
第二个比第一个稍有改进。但如果这是必需的,我需要手动给出所有可能的组合。
类似(具有更多组合):
re.split("\n\s|\s\n|\s\n\s|\n|,\s|\s,|\s,\s|,|\s|\r", x)
输出:
['121', '1238', 'xyz', '', '123abc', '', 'abc123']
有没有更好的办法
这篇文章很有用
Split multiple characters from string
允许
re.split
将任何分隔字符的1个或多个重复作为分隔符:(“*”、“+”和“?”限定符都是贪婪的,它们尽可能匹配。)
结合@Johnny Mopp和@alfinkel24的评论:
将根据需要拆分字符串以
说明:
[...]
任何字符李>+
前面字符的一个或多个重复李>\s
任何空白字符,包括"\n, \r, \t"
官方文件:
相关问题 更多 >
编程相关推荐