Как вы делаете замену строки без учета регистра с помощью регулярных выражений?
Я точно знаю о регулярных выражениях и полагаю, что это была хорошая возможность, как и любая, изучить по крайней мере самые основные основы.
Как сделать эту замену строки без учета регистра в С#, используя регулярное выражение?
myString.Replace("/kg", "").Replace("/KG", "");
(Обратите внимание, что '/' является литералом.)
Ответы
Ответ 1
Вы можете использовать:
myString = Regex.Replace(myString, "/kg", "", RegexOptions.IgnoreCase);
Если вы собираетесь делать это много раз, вы можете сделать:
// You can reuse this object
Regex regex = new Regex("/kg", RegexOptions.IgnoreCase);
myString = regex.Replace(myString, "");
Использование (?i:/kg)
приведет к тому, что этот бит большего размера не будет восприниматься регистром нечувствительным - лично я предпочитаю использовать RegexOptions
, чтобы сделать параметр влияющим на весь шаблон.
MSDN имеет довольно разумную документацию регулярных выражений .NET.
Ответ 2
Вот так:
myString = Regex.Replace(myString, "/[Kk][Gg]", String.Empty);
Обратите внимание, что он также будет обрабатывать комбинации /kG и/Kg, поэтому он делает больше, чем пример замены строки.
Если вы хотите обрабатывать конкретные комбинации/кг и /KG:
myString = Regex.Replace(myString, "/(?:kg|KG)", String.Empty);
Ответ 3
"/[kK] [gG]" или "(? i:/kg)" будет соответствовать вам.
объявить новый объект regex, передавая в одном из них ваше содержимое. Затем запустите regex.replace.
Ответ 4
Это зависит от того, чего вы хотите достичь. Я предполагаю, что вы хотите удалить последовательность символов после косой черты?
string replaced = Regex.Replace(input,"/[a-zA-Z]+","");
или
string replaced = Regex.Replace(input,"/[a-z]+","",RegexOptions.IgnoreCase);
Ответ 5
Regex regex = new Regex(@"/kg", RegexOptions.IgnoreCase );
regex.Replace(input, "");
Ответ 6
Здесь приведен пример использования функции Regex.replace.