Ответ 1
Чтобы заменить все слово (а не часть слова):
string s = Regex.Replace(s, @"\bwest\b", "something");
Например, у меня есть код ниже string txt = "У меня есть строки, такие как Запад и Запад, а также запад и запад."
Я хотел бы заменить слово "Запад" или "Запад" другим словом. Но я бы хотел не заменить Запад на Запад.
inputText.Replace("(\\sWest.\\s)",temp);
Он не работает.Чтобы заменить все слово (а не часть слова):
string s = Regex.Replace(s, @"\bwest\b", "something");
Ответ на вопрос НЕТ - вы не можете использовать regexp в string.Replace.
Если вы хотите использовать регулярное выражение, вы должны использовать класс Regex, как все заявили в своих ответах.
Вы посмотрели на 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);
Это заменит "Запад" и "Запад" новым словом
Вставьте регулярное выражение в код перед классом
using System.Text.RegularExpressions;
ниже приведен код для замены строки с помощью regex
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
В Java String#replace
принимает строки в формате regex, но С# также может делать это с помощью расширений:
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"
Класс Regex статичен, если вы используете метод Replace (Regex.Replace).
public static class Extension
{
public static string ReplaceValue(string data,string criteria)
{
return s = Regex.Replace(s, @"\bwest\b", "something");
}
}