25


6

私は正規表現について正確に理解していないし、これは基本の少なくとも最も基本的なことを学ぶために他のものと同じくらい良い機会であると考えた。

大文字と小文字を区別しないで、C#で正規表現を使用して文字列を置換する方法を教えてください。

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

( '/'はリテラルです。)

6 Answer


68


あなたが使用することができます:

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正規表現に関するhttp://msdn.microsoft.com/en-us/library/hs600312.aspx [かなり妥当な文書]があります。


5


このような:

myString = Regex.Replace(myString、 "/ [Kk] [Gg]"、String.Empty);

/ kGと/ Kgの組み合わせも処理されるため、文字列の置換の例以上のことが行われます。

/ kgと/ KGの特定の組み合わせだけを処理したい場合は、次のようにします。

myString = Regex.Replace(myString、 "/(?: kg | KG)"、String.Empty);


2


「/ [kK] [gG]」または「(?i:/ kg)」が一致します。

新しい正規表現オブジェクトを宣言し、その中の1つをあなたのコンテンツとして渡します。 次にregex.replaceを実行してください。


0


それはあなたが達成したいことによります。 スラッシュの後に一連の文字を削除したいと思いますか。

置換文字列= Regex.Replace(input、 "/ [a-zA-Z]"、 "");

または

置換文字列= Regex.Replace(入力、 "/ [a-z]"、 ""、RegexOptions.IgnoreCase);


0


regex regex = new Regex(@ "/ kg"、RegexOptions.IgnoreCase); regex.Replace(input、 "");


0


http://weblogs.asp.net/jgalloway/archive/2004/02/11/71188.aspx[Here]は、Regex.replace関数を使用した例です。