这是我的输入数据示例
data = "1000616411022604|1000616410908275|10.00|ktefwrj\"w\\|2014-02-25|debit|\|tcsceldxz"
我希望解析后的输出如下所示
["1000616411022604", "1000616410908275" , "10.00", "ktefwrj\"w\\", "2014-02-25", "debit", "\|tcsceldxz"]
但是我的输出是这样的
['1000616411022604', '1000616410908275', '10.00', 'ktefwrj"w\\', '2014-02-25', 'debit', '\\', 'tcsceldxz']
通过查看stackoverflow中的一些代码,我尝试使用re,但它不起作用
data = re.split(r'[^\\]|', data)
我正在尝试使用正则表达式在python中实现这一点。有人能帮我吗
您应该首先对此页面进行审阅:https://docs.python.org/2.0/ref/strings.html
您可以看到,您试图保留的是转义序列,默认情况下,尤其是Python3在处理文本时自动格式化
如果您仍然希望得到与您显示的输出非常相似的结果,您可以尝试以下方法:
输出:
你想保留转义字符吗
如果是这样,则使数据=r'string'
当你打印时,额外的转义字符会浓缩下来,给你我认为你想要的
我使用data.split(“|”)生成列表
|会造成一点束缚,因此您尝试了以下方法:
这也会导致问题,因为它会错过先前的拆分
您希望在最后一列中保留的这些内容有多普遍
您可以只对“|”进行拆分,然后对最后两列进行联接,将其中一个“|”放回原处,或者在拆分生成长度不合适的列表时有条件地将其放回原处
还请记住,很明显,某些列包含日期和某些类型的数据,因此,如果拆分导致循环,可以使用它来执行一些合理性检查
相关问题 更多 >
编程相关推荐