2014-10-12 80 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