我正在使用regex.Replace()來替換整個字符串。所以我給了像Regex.Replace(str,@ stringToReplace,「**」); stringToReplace = @「session」+「\ b」;Regex.Replace()替換整個事件
如果我給它喜歡它沒有取代..但如果我給像Regex.Replace(str,@「session \ b」,「**」);那麼它的工作..如何避免這個問題..我想通過將動態地進行設定值..
感謝 尼米
我正在使用regex.Replace()來替換整個字符串。所以我給了像Regex.Replace(str,@ stringToReplace,「**」); stringToReplace = @「session」+「\ b」;Regex.Replace()替換整個事件
如果我給它喜歡它沒有取代..但如果我給像Regex.Replace(str,@「session \ b」,「**」);那麼它的工作..如何避免這個問題..我想通過將動態地進行設定值..
感謝 尼米
嘗試
stringToReplace = @"session" + @"\b";
+1最快。 – 2010-05-04 10:52:40
它的工作。 Great .. Thanku so much .. – Nimmi 2010-05-04 10:56:58
@Nimmi:你應該(如果可能的話)選擇最有用/正確的答案,並選中它旁邊的複選標記以將其標記爲「已接受」。也贊成好的答案(我剛剛提出了你的問題,現在你有足夠的聲譽來這樣做)。 – 2010-05-04 12:52:16
@ 「會話」 +「\ b 「 和 @」session \ b「
不是相同的字符串。 在第一種情況下,「\ b」不會將斜線視爲斜線,而是視爲轉義參數。在第二種情況下,你這樣做。
所以@ 「會話」 + @ 「\ B」 應帶來同樣的結果
的@
這裏指的是verbatim string literal。
當您在不使用@
的情況下寫入「\ b」時,它表示退格字符,即ASCII碼爲8的字符。您希望字符串由反斜槓後跟b
組成,這意味着當處於常規表達。
爲了得到這個,你需要將反斜線轉義爲文字反斜槓:"\\b"
或者將第二個字符串也寫成逐字串字符串:@"\b"
。還要注意的是@"session"
(沒有\b
)中的@
實際上並沒有效果,儘管將它留在那裏並沒有什麼壞處。
stringToReplace = "session" + @"\b";
+1爲最完整的解釋。 :) – 2010-05-04 11:46:11
請用標記語言編程。 – doublep 2010-05-04 10:55:20