C# で正規表現グループを使用してテキスト文字列から特定の情報を抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-30 19:28:30
オリジナル
442 人が閲覧しました

How do I extract specific information from a text string using regular expression groups in C#?

C# の正規表現グループ

C# では、正規表現はテキスト処理のための強力なツールを提供します。特定の情報を抽出するには、これらの式内でグループがどのように機能するかを理解することが重要です。正規表現グループがどのように使用され、特定のシナリオでの動作を解読してみましょう。

次の正規表現と入力文字列の例を考えてみましょう。

var pattern = @"\[(.*?)\]";
var user = "Josh Smith [jsmith]";
ログイン後にコピー

式 [(.*? )] は、左角括弧で始まり、角括弧内の任意の文字の非貪欲一致が続き、右角括弧で終わるテキストと一致します。

上記の入力で Regex.Matches を使用する場合、次の結果が得られます:

matches.Count == 1
matches[0].Value == "[jsmith]"
ログイン後にコピー

正規表現は部分文字列 "[jsmith]" と一致するため、これは理にかなっています。ただし、Groups コレクションに飛び込む価値はあります。

matches[0].Groups.Count == 2
matches[0].Groups[0].Value == "[jsmith]"
matches[0].Groups[1].Value == "jsmith"
ログイン後にコピー

ここで、Groups[0] は角括弧を含む一致全体を表します。 Groups[1] には、角括弧内のテキスト (この場合は「jsmith」) が含まれます。正規表現には、角かっこ内の文字をキャプチャする (.*?) で識別されるキャプチャ グループが含まれています。これは、Groups[1] が "jsmith" を返す理由を説明しています。

Groups コレクション内のグループの数は正規表現自体に依存することに注意することが重要です。上の例では、キャプチャ グループが 1 つだけあるため、Groups には一致全体と最初にキャプチャされたグループという 2 つの要素があります。

この概念をさらに説明するために、より複雑な例を考えてみましょう。

var pattern = @"\[(.*?)\](.*)";
var match = Regex.Match("ignored [john] John Johnson", pattern);
ログイン後にコピー

このシナリオでは、正規表現は、角括弧で囲まれたテキストの後に他のテキストが続くものと一致します。 Groups コレクションの内訳は次のとおりです。

match.Value == "[john] John Johnson"
match.Groups[0].Value == "[john] John Johnson"
match.Groups[1].Value == "[john]"
match.Groups[2].Value == "John Johnson"
ログイン後にコピー

ご覧のとおり、Groups[1] は角かっこの最初のセット内のテキストをキャプチャし、Groups[2] はかっこの後のテキストをキャプチャします。最も内側のキャプチャ グループは、独自の Capture コレクションを持つこともできます。正規表現グループの仕組みを理解することで、開発者はこれらの強力な一致パターンを使用してテキスト文字列から特定の情報を効果的に抽出できます。

以上がC# で正規表現グループを使用してテキスト文字列から特定の情報を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!