2009-06-24 189 views

回答

12

你們看到在"C:\\foo\\bar"是字符串"C:\foo\bar"的文字表述,以作進一步處理逃跑反斜槓。

例如,如果你讓長度爲1的串與反斜線字符:

(make-string 1 ?\\) 

將得到以下的響應(例如在迷你緩衝區,當你評價以上使用Cx鈰):

"\\" 

另一種方式來獲得你想要的是切換「字面」標誌上:

(replace-regexp-in-string "/" "\\" path t t) 

順便說一句,你不需要逃避斜線。

6

是否需要雙重逃脫?

(replace-regexp-in-string "\/" "\\\\" path) 
+0

不,我已經嘗試過了:C:/ foo/bar變成C:\\ foo \\吧... – Peter 2009-06-24 10:35:50

+0

您是否也嘗試過\\\? – schnaader 2009-06-24 10:38:27

+0

是的:-)但這是一個語法錯誤(最後一個報價被轉義比) – Peter 2009-06-24 10:41:05

0

不要使用emacs但我想它支持某種形式經由\ X

例如指定的unicode的也許這個作品

(replace-regexp-in-string "\x005c" "\x005f" path)) 

(replace-regexp-in-string "\u005c" "\u005f" path)) 
2

嘗試使用正則表達式,報價的功能,像這樣:

(replace-regexp-in-string "/" (regexp-quote "\\") "this/is//a/test")

正則表達式,引用文檔中讀取

(正則表達式引號的字符串) 返回其確切的字符串匹配的正則表達式字符串沒有別的。