我可以在C#中使用带有String.Replace的正则表达式吗?

时间:2010-05-05 06:30:27

标签: c# regex string text matching

例如,我有以下代码     string txt =“我有西方,西方,西方,西方等字符串。”

我想用其他词替换西方或西方这个词。但我不想在西方取代西方。

  1. 我可以在string.replace中使用正则表达式吗?我用了 inputText.Replace("(\\sWest.\\s)",temp);它不起作用。

9 个答案:

答案 0 :(得分:25)

问题的答案是 - 你不能在string.Replace中使用regexp。

如果你想使用正则表达式,你必须使用正则表达式,就像他们的答案中所说的一样。

答案 1 :(得分:24)

要替换整个单词(而不是单词的一部分):

string s = Regex.Replace(s, @"\bwest\b", "something");

答案 2 :(得分:7)

你看过Regex.Replace了吗?另外,一定要抓住返回值; Replace(通过任何字符串机制)返回 new 字符串 - 它不会进行就地替换。

答案 3 :(得分:4)

尝试使用System.Text.RegularExpressions.Regex课程。它有一个静态Replace方法。我对正则表达式不太满意,但是像

那样
string outputText = Regex.Replace(inputText, "(\\sWest.\\s)", temp);
如果正则表达式正确,

应该有效。

答案 4 :(得分:2)

如果您希望它不区分大小写,请使用此代码

string pattern = @"\bwest\b";
string modifiedString = Regex.Replace(input, pattern, strReplacement, RegexOptions.IgnoreCase);

答案 5 :(得分:1)

我同意Robert Harvey的解决方案,除了一个小修改:

s = Regex.Replace(s, @"\bwest\b", "something", RegexOptions.IgnoreCase);

这将用您的新单词

替换“West”和“west”

答案 6 :(得分:0)

在类

之前的代码中插入正则表达式
using System.Text.RegularExpressions;
下面的

是使用正则表达式替换字符串的代码

string input = "Dot > Not Perls";
// Use Regex.Replace to replace the pattern in the input.
string output = Regex.Replace(input, "some string", ">");

来源:http://www.dotnetperls.com/regex-replace

答案 7 :(得分:0)

在Java中,resultMap接受正则表达式格式的字符串,但C#也可以使用扩展来执行此操作:

String#replace

并使用它:

public static string ReplaceX(this string text, string regex, string replacement) {
    return Regex.Replace(text, regex, replacement);
}

答案 8 :(得分:-1)

当您使用方法Replace(Regex.Replace)时,

类Regex是静态的。

h1, h2 { display: inline; }