使用多分隔符分割字符串失效,仅单个分隔符可用,求问题排查
问题分析与解决
你的问题出在Python的str.split()方法不支持用|表示多分隔符的“或”逻辑——它只会把你写的splitter当成一个完整的字符串去匹配,而你的目标字符串里根本不存在"\r\n\r\n | \r\n\r\n| "这个完整序列,自然分割无效。
要实现多分隔符分割,得用re模块的split()函数,它支持正则表达式,可以用|来指定多个可选分隔符。
修正后的代码示例
import re string = '\r\n\r\n \r\n\r\nfirst_col: col1 \r\n\r\nsecond_col: col2 \r\n\r\nthird_col: col3 \r\n\r\nfourth_col: col4 \r\n\r\nfith_col: col5\r\n' # 匹配所有包含\r\n\r\n的分隔组合,同时忽略前后的空格 split_result = re.split(r'\s*\r\n\r\n\s*', string) # 过滤分割后产生的空字符串 clean_result = [item for item in split_result if item] print(clean_result)
执行后会得到你想要的结果:
['first_col: col1', 'second_col: col2', 'third_col: col3', 'fourth_col: col4', 'fith_col: col5']
补充说明
如果你只想精确匹配你原本指定的几个分隔符("\r\n\r\n "和" \r\n\r\n"),也可以这样写正则:
split_result = re.split(r'\r\n\r\n | \r\n\r\n', string) clean_result = [x for x in split_result if x.strip()]
内容的提问来源于stack exchange,提问作者corianne1234
相关产品推荐
相关产品推荐

