ホームページ >バックエンド開発 >C++ >正規表現区切り文字が C# で機能しないのはなぜですか?

正規表現区切り文字が C# で機能しないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-22 04:38:10844ブラウズ

Why Aren't My Regular Expression Delimiters Working in C#?

C# の正規表現構文を理解する

C# で正規表現を使用する場合、PHP や JavaScript などの言語で一般的なスラッシュ (/) などの区切り文字を使用しようとすると、問題が発生する可能性があります。 これが C# で機能しない理由と、正規表現を正しく実装する方法を調べてみましょう。

この問題は、次のような正規表現を使用しようとすると発生します (間違っています):

"name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487\nname = Regex.Replace(name, @"/\W/g", "")"

このコードは、「/」、「-」、「.」を削除しようとしています。区切り文字を使用します。 ただし、C# では正規表現の処理方法が異なります。 区切り文字は必須ではありませんが、実際にエラーが発生します。

C# の正しいアプローチ

C# で正規表現を定義するには、@ 記号を使用して逐語的な文字列リテラルを作成します。これにより、C# が文字列内のエスケープ シーケンスを解釈できなくなります。 また、正規表現自体内の特殊文字を正しくエスケープする必要もあります。

英数字以外の文字 (W) を削除する修正コードは次のようになります:

<code class="language-csharp">name = Regex.Replace(name, @"\W", "");</code>

この 1 行のコードは、name 文字列内の英数字以外の文字をすべて空の文字列に効果的に置き換え、区切り文字を必要とせずに目的の結果を実現します。 W は、英数字以外の文字に一致する正規表現文字クラスであることに注意してください。

以上が正規表現区切り文字が C# で機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。