Skip to main content
 首页 » 编程设计

Python 字符串转换

2025年05月04日35duanxz

这是我通过解析文件中的数据创建的字符串:

723|NM|1|7201|QQ|1|72034|PP|1|72034N|AA|1|7203466|QW|1|72000|NM|1|7201111|NM|1 

理想情况下我想要这样的输出:

723|NM|1 
7201|QQ|1 
72034|PP|1 
72034N|AA|1 
7203466|QW|1 
72000|NM|1 
7201111|NM|1 

由于我没有成功解析数据并动态附加它(我是 python 的新手),我知道我可以通过转换这个字符串来获得相同的期望输出。

我研究、测试并卡住了。

基本上我需要用一个新行替换分隔符的每个第 3 个实例(或者,也许任何人都可以建议的更好的东西)。

非常感谢任何帮助!

谢谢

请您参考如下方法:

没有正则表达式:

像这样:

s = "723|NM|1|7201|QQ|1|72034|PP|1|72034N|AA|1|7203466|QW|1|72000|NM|1|7201111|NM|1" 
 
items = s.split("|") 
print("\n".join(["|".join(items[i:i+3]) for i in range(0,len(items),3)] )) 

请注意,外部 join 中的 [] 是有目的的,以获得更好的性能 ( List comprehension without [ ] in Python )(即使我同意它很丑 :))

结果:

723|NM|1 
7201|QQ|1 
72034|PP|1 
72034N|AA|1 
7203466|QW|1 
72000|NM|1 
7201111|NM|1 

顺便说一句,使用正则表达式也很简单:

re.sub("(.*?\|.*?\|.*?)\|","\\1\n",s) 

但是如果项目的数量不能完全被 3 整除(这可以做到,但是以更复杂的方式)