Подтвердить что ты не робот

Как вы делаете замену строки без учета регистра с помощью регулярных выражений?

Я точно знаю о регулярных выражениях и полагаю, что это была хорошая возможность, как и любая, изучить по крайней мере самые основные основы.

Как сделать эту замену строки без учета регистра в С#, используя регулярное выражение?

myString.Replace("/kg", "").Replace("/KG", "");

(Обратите внимание, что '/' является литералом.)

4b9b3361

Ответ 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.