拆分文本python

时间:2011-12-18 12:58:47

标签: python

感谢您回答我的问题,我只是想澄清一下我在问什么 我正在尝试使用str.split('+')拆分以下字符串,我正在从文本文件中读取字符串:

['\A'+'ABBOTT\s|\s'+'ABBOTT\s|\s'+'ABBOTT$|\A'+'ABBOTT LABORATORIES\s|\s'+'ABBOTT LABORATORIES\s|\s'+'ABBOTT LABORATORIES$']

期望的结果将是:

['\A'+'ABBOTT\s|\s', 'ABBOTT\s|\s', 'ABBOTT$|\A', 'ABBOTT LABORATORIES\s|\s', 'ABBOTT LABORATORIES\s|\s', 'ABBOTT LABORATORIES$']

但相反,我得到了: [“'\ A'”,“'ABBOTT \ s | \''”,“'ABBOTT \ s | \''”,“'ABBOTT $ | \ A'”,“'雅培实验室\ | s'\' “,”'ABBOTT LABORATORIES \ s | \ s'“,”'ABBOTT LABORATORIES $'“]

但是,在分裂之后我无法得到\作为单身 再次感谢!!!

1 个答案:

答案 0 :(得分:0)

如果直接打印数组,它看起来好像第一个条目的值是['\\A',这也是在脚本中处理它时应该写入的值的方式。

这是因为在该上下文中的print会将字符串包装在""内并转义\内的字符(在打印的字符串中将它们转换为\\)。

"['\\A'+'ABBOTT\\s|\\s'+'ABBOTT\\s|\\s'+'ABBOTT$|\\A'+'ABBOTT LABORATORIES\\s|\\s'+'ABBOTT LABORATORIES\\s|\\s'+'ABBOTT LABORATORIES$']"

你的字符串的“真实”值不是那样的。

Python 2.7.2 (default, Aug 22 2011, 13:53:27) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

>>> print "['\\A'+'ABBOTT\\s|\\s'+'ABBOTT LABORATORIES$']".split ('+')
["['\\A'", "'ABBOTT\\s|\\s'", "'ABBOTT LABORATORIES$']"]

>>> print "['\\A'+'ABBOTT\\s|\\s'+'ABBOTT LABORATORIES$']".split ('+')[0]
['\A'