Я могу использовать регулярные выражения со Строкой. Замена в C#?

Например, у меня есть код ниже, представляют txt в виде строки =, "У меня есть строки как Запад и Запад; и запад, и Западный".

Я хотел бы заменить слово на запад или Запад с некоторым другим словом. Но я хотел бы не заменить Запад в Западном.

  1. Я могу использовать регулярное выражение в string.replace? Я использовал inputText.Replace("(\\sWest.\\s)",temp); Это DOS не работает.
18
задан kame 23 May 2019 в 10:32
поделиться

5 ответов

Для замены всего слова (а не части слова):

string s = Regex.Replace(s, @"\bwest\b", "something");
30
ответ дан 30 November 2019 в 05:47
поделиться

Вы смотрели Regex.Regex.Replace ? Также не забудьте поймать возвращаемое значение; Replace (через любой строковый механизм) возвращает новую строку - она ​​не выполняет замену на месте.

7
ответ дан 30 November 2019 в 05:47
поделиться

Я согласен с решением Роберта Харви, за исключением одной небольшой модификации:

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

Это заменит как «Запад», так и « west "новым словом

1
ответ дан 30 November 2019 в 05:47
поделиться

Используйте этот код, если хотите, чтобы он не учитывал регистр

string pattern = @"\bwest\b";
string modifiedString = Regex.Replace(input, pattern, strReplacement, RegexOptions.IgnoreCase);
2
ответ дан 30 November 2019 в 05:47
поделиться

Попробуйте использовать класс System.Text.RegularExpressions.Regex . Он имеет статический метод Replace . Я плохо разбираюсь в регулярных выражениях, но что-то вроде

string outputText = Regex.Replace(inputText, "(\\sWest.\\s)", temp);

должно работать, если ваше регулярное выражение правильное.

4
ответ дан 30 November 2019 в 05:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: