игнорировать регистр в regex.replace? - PullRequest
5 голосов
/ 19 января 2011

У меня есть этот код для поиска в строке и замены некоторого текста другим текстом:

Regex regexText = new Regex(textToReplace);
retval = regexText.Replace(retval, Newtext);

textToReplace может быть «добро пожаловать» или «клиент» или что-то еще.

Я хочу игнорировать регистр для textToReplace, чтобы оба "добро пожаловать" и "добро пожаловать" совпадали.

Как я могу это сделать?

Ответы [ 3 ]

16 голосов
/ 19 января 2011

Вы можете попробовать:

Regex regexText = new Regex(textToReplace, RegexOptions.IgnoreCase);
13 голосов
/ 19 января 2011

Вы просто передаете опцию RegexOptions.IgnoreCase примерно так:

Regex regexText = new Regex(textToReplace, RegexOptions.IgnoreCase);
retval = regexText.Replace(retval, Newtext);

Или, если хотите, вы можете передать эту опцию непосредственно методу Replace :

retval = Regex.Replace(retval, textToReplace, Newtext, RegexOptions.IgnoreCase);

Список доступных опций, которые можно установить для регулярных выражений, доступен на странице документации RegexOptions .

1 голос
/ 19 января 2011

Regex.Replace перегрузка с RegexOptions .Эти параметры включают значение IgnoreCase.

...