例如我有以下代碼 string txt =「我有西方和西方的字符串,西方和西方。」我可以在C#中使用String.Replace的正則表達式嗎?
我想用一些其他詞來替換West或West這個詞。但我不想在西方取代西方。
- 我可以在string.replace中使用正則表達式嗎?我用
inputText.Replace("(\\sWest.\\s)",temp);
它不工作。
例如我有以下代碼 string txt =「我有西方和西方的字符串,西方和西方。」我可以在C#中使用String.Replace的正則表達式嗎?
我想用一些其他詞來替換West或West這個詞。但我不想在西方取代西方。
inputText.Replace("(\\sWest.\\s)",temp);
它不工作。要更換整個單詞(而不是字的一部分):
string s = Regex.Replace(s, @"\bwest\b", "something");
你看着Regex.Replace
?另外,一定要記住返回值; Replace
(通過任何字符串機制)返回一個新的字符串 - 它不會進行就地替換。
嘗試使用System.Text.RegularExpressions.Regex
類。它有一個靜態的Replace
方法。我不擅長正則表達式,但像
string outputText = Regex.Replace(inputText, "(\\sWest.\\s)", temp);
應該工作,如果你的正則表達式是正確的。
使用此代碼,如果你希望它是不區分大小寫
string pattern = @"\bwest\b";
string modifiedString = Regex.Replace(input, pattern, strReplacement, RegexOptions.IgnoreCase);
我只是一個小改羅伯特·哈維的解決方案達成一致:
s = Regex.Replace(s, @"\bwest\b", "something", RegexOptions.IgnoreCase);
這將取代雙方「西部大開發」和「西「用你的新單詞
在課前在代碼中插入正則表達式
0下面是字符串中的代碼替換使用正則表達式
string input = "Dot > Not Perls";
// Use Regex.Replace to replace the pattern in the input.
string output = Regex.Replace(input, "some string", ">");
問題的答案是NO - 你不能在使用與string.replace正則表達式。
如果你想使用正則表達式,你必須使用Regex類,正如每個人在他們的答案中所述。
+1只回答直接回答問題,如果你可以使用String.Replace也用於正則表達式 – drkthng 2015-10-06 09:37:42
class Regex是靜態的,當你使用方法Replace(Regex.Replace)。
public static class Extension
{
public static string ReplaceValue(string data,string criteria)
{
return s = Regex.Replace(s, @"\bwest\b", "something");
}
}
這看起來像一個問題。問*作爲一個問題。*另外,你發佈了這個非答案的問題,並在6年前回答。 – 2016-07-21 22:10:03
在Java中,String#replace
接受正則表達式格式字符串,但C#可以做到這一點,以及使用擴展:
public static string ReplaceX(this string text, string regex, string replacement) {
return Regex.Replace(text, regex, replacement);
}
而且使用它像:
var text = " space more spaces ";
text.Trim().ReplaceX(@"\s+", " "); // "space more spaces"
看起來沒事,但這樣會忽略西部和西部。並且它是不區分大小寫的? – 2010-05-05 06:44:15
我認爲它和我已經在做的一樣使用 's = s.Replace(「West」,「something」);' – 2010-05-05 06:50:11
它的工作原理就像字符串s = Regex.Replace(s,@「(\ bwest \ b)」,「something」);.它適用於西方。西,西;以及。不明白爲什麼:) – 2010-05-05 07:06:51