2014-10-12 117 views
0

我需要从文本中删除\。例如,如果输入如下:如何从文本中删除?

如果行政人员的职位因残疾而终止,行政人员将收到当时在职董事的多数支付。\',\'5%的金额(v)

如何从\ \和\从\'中删除\\?我试图做一些方法,但他们不工作。

q4 = re.sub(r'\*','',q3) 
+0

你确定你的文本里实际上有反斜杠吗?更可能的是,你将'repr'表示与实际的字符串内容混淆了。尝试'打印它,看看会发生什么。 – user2357112 2014-10-12 07:59:55

+0

(即使事实证明你的字符串确实有反斜杠,你需要了解字符串字面意义上的反斜杠是什么意思,因为你的regex尝试不是逃避反斜杠。) – user2357112 2014-10-12 08:04:23

+0

我尝试使用PRint,它仍然显示\。我只是想从文本中删除它,以便文本更易于阅读。谢谢。 – 2014-10-12 08:07:09

回答

2
nobackslashes = withbackslashes.replace('\\', '') 

你什么都不需要,与成熟的正则表达式;普通字符串替换工作正常。重要的是避免反斜杠;在字符串文字中,反斜线表示转义序列的开始,通常用于将不可类型化的字符放入字符串中。两个反斜杠是文字反斜线字符的转义序列。

一旦你这样做,如果你仍然看到反斜杠,你可能会显示字符串的方式,增加一个额外的逃逸层。例如,如果你与内容

O'Connor says, "Hi." 

一个文件,并查看交互解释对话内容:

>>> with open('asdf.txt') as f: 
...  text = f.read() 
... 
>>> text 
'O\'Connor says, "Hi."' 

你会看到一个反斜杠,因为Python是你展示一个字符串这会产生一个内容相同的字符串,而不是直接打印字符串的字符。在另一方面,如果你使用print

>>> print text 
O'Connor says, "Hi." 

这不会发生。

+0

谢谢。这样可行。 – 2014-10-12 08:27:51