Linq 正規表現

C# 正規表現のメソッドの使い方 IsMatch、Match、Matchesについて解説します。Matchクラスのプロパティについても。

今回のテーマ

今回は、正規表現のメソッドについて触れていきます。今回、対象となるメソッドは下記のメソッドです。

正規表現のメソッド

  • IsMatch
  • Match
  • Matches

C#の正規表現については下記の記事で軽く触れましたが、がっつりと触れることは今までなかったので、

今回の記事でソースコードを見ながら、各メソッドの使い方を学んでみてください。

こちらもCHECK

C# 2文字以上の指定した文字列でSplitする方法 指定した文字列で配列に分割したい場合に見てください

今回のテーマContents1 今回のテーマ1.1 String型のSplitメソッド1.2 Regexクラスを使用したやり方1.3 まとめ 今回は2文字以上で配列に分割する方法を紹介します。 1文字 ...

続きを見る

それでは、学んでいきましょう!!

KappaChan
今回は正規表現のメソッドかっぱ!

IsMatch

まずはIsMatchメソッドの使い方です。下記の引数が二つのIsMatchメソッドを扱うことがほとんどだと思います。

戻り値はbool型で第1引数に対象の文字列、第2引数に正規表現を指定します。

試しに下記のようなソースコードを作ってみました。

 出力結果
Rockman2
Rockman3
Rockman4

正規表現については別記事に書くつもりなので、この記事では軽くしか触れません。他メソッドも今回の配列と正規表現で色々やっていきます。

今回例として扱った正規表現はRockから始まり、数字で終わる正規表現です。

このソースコードでは、配列の要素を1つずつ確認していき、正規表現に一致している場合は、出力するソースコードです。

IsMatchメソッドで一致している場合はTrue、一致していない場合はFalseを返していることが出力結果で分かると思います。

下記のソースコードのようにLinqのCountメソッドと組み合わせると1行で一致した件数を出力できます。結構覚えておくと、便利ですよ!!

 出力結果
3

Match

続けて、Matchメソッドをみていきましょう。このメソッドは下記のようになっています。

引数はIsMatchメソッドと同じですが、返り値がMatch型何ですよね。

Matchクラスには下記のようなプロパティが用意されています。

Success 一致した場合はTrue、それ以外はFalse IsMatchの結果と同様
Index 一致した部分文字列の先頭の位置
Length 一致した部分文字列の長さ
Value 一致した部分文字列

とりあえず、出力結果を見た方が早いので、ソースコード例をどんどんみていきましょう。

Success

 出力結果
Rockman2
Rockman3
Rockman4

IsMatchメソッドと同じ結果ですね。

Index、Length、Value

 出力結果
Index:0
Length:8
Value:Rockman2
Index:0
Length:8
Value:Rockman3
Index:0
Length:8
Value:Rockman4

それぞれ出力結果を見比べてみましょう。まず、Indexは例が良くないですが、0番目から値が一致しているので全て0と出力されています。

Lengthは文字列の長さの8が出力されています。Valueは値が出力されています。

Matches

最後にMatchesです。このメソッドは正規表現と一致した文字列をMatchCollection型として返してくれます。

正規表現に該当した文字列を全て、MatchCollectionとして格納してくれます。

分かりにくいと思うので、下記のソースコードで処理の動きをみてみましょう。

 出力結果
Rockman2
Rockman3
Rockman4

文字列からRockman2、Rockman3、Rockman4のみ出力するソースコードです。

Matchesメソッドでは、出力結果のように一致した全ての文字列をMatchCollectionクラスに格納してくれます。

正規表現がさすがにややこしいので簡単に解説します。

Rから始まる。

([^\d]+)*により、「Rockman2とRockman3とRockman4」などと一致しないようにするため、数字を除外する。

数字を除外しているため、*では「Rockman」まで一致する。

最後に\dを指定することで数字が一致する。

また、MatchesCollectionクラスでは、Matchクラスを1つずつ格納していくため、Foreach内でvarでの指定は出来ません。

KappaChan
正規表現はぱっと見難しいけど、よく使うのでしっかり覚えるかっぱ!

まとめ

今回は正規表現でよく使用するメソッドを解説しました。

正規表現のメソッドを自由に扱えるようになると、文字列の処理の幅が大幅に広がるので、

難しいですが、是非おぼえてくださいね。かっぱちゃんブログでも正規表現に関しては、これから沢山取り上げていきたいと思います。

KappaChan
今回の記事は以上かっぱ!

プログラミングを一人で独学をするならプロからオンラインで教えてもらいましょう!10倍効率いいです!!

数多くあるプログラミング教室の中で2つのオンライン教室を厳選しました!どちら共、エンジニアとしての就職までサポートしてくれる本当にオススメの教室です。個別相談は完全無料です!!

カウンセリングは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

新しいサイト作りました。アニメのまとめサイトです。

レインボーリアルタイムTwitter(アニメ版)

レインボーリアルタイムTwitter(映画版)

-Linq, 正規表現

X