【发布时间】:2015-12-21 01:59:51
【问题描述】:
我正在处理一些具有这种格式的文本:
“说他们会价格匹配” “价格不匹配” “嘿,不要在周末安装”
我在这里遇到的问题是我在整个文本中都有这个反斜杠 '\' '\\',我需要使用
删除这些反斜杠.replace('\\','')
但我不确定这些是文本上出现的唯一符号还是有更多组合,我无法手动读取所有数据来检查这一点,有数千页。这是个常见的问题吗?是由特定的编码格式引起的?
【问题讨论】:
我正在处理一些具有这种格式的文本:
“说他们会价格匹配” “价格不匹配” “嘿,不要在周末安装”
我在这里遇到的问题是我在整个文本中都有这个反斜杠 '\' '\\',我需要使用
删除这些反斜杠.replace('\\','')
但我不确定这些是文本上出现的唯一符号还是有更多组合,我无法手动读取所有数据来检查这一点,有数千页。这是个常见的问题吗?是由特定的编码格式引起的?
【问题讨论】:
当您看到双反斜杠 \\ 时,这是 Python 表示文字斜杠的方式。
>>> s = 'some s\\tring'
>>> t
'vertical \tab'
>>> s # just `s` gives the repr
'some s\\tring'
>>> print a # prints `s`
some s\tring
>>> # ^^^ notice the lack of slashes or quotes above
在'some s\\tring' 中,\\ 意味着一个实际的\。没有它,反斜杠 \ 将应用于代表垂直制表符 \t 的 t。
语句.replace('\\','') 试图用空替换实际的斜线。但是您所拥有的不是实际的斜杠,而是单引号的“转义序列”。以tab为例:
>>> t = 'vertical \tab' # see what I did there?
>>> print t
vertical ab
>>> # notice the actual tab above
...
>>> t.replace('\\', '') # trying to remove literal slash
'vertical \tab'
>>> # that didn't work
...
>>> s.replace('\\', '') # try it on the string above which has an actual slash
'some string'
【讨论】:
在 shell 脚本中,反斜杠用于转义字符。也就是说,它允许 shell 不将字符解释为特殊字符。单引号和双引号是 shell 中的特殊字符,它用于将一组字符括起来以形成一个字符串......所以如果你用反斜杠转义引号,shell 会将它解释为文字引号而不是解释它作为特殊字符。
我在这里假设您看到的输出没有发送到 shell,这就是为什么您看到文字反斜杠后跟引号的原因?
【讨论】: