感谢您回答我的问题,我只是想澄清一下我在问什么 我正在尝试使用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 $'“]
但是,在分裂之后我无法得到\作为单身 再次感谢!!!
答案 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'