C#のLinqのメソッド一覧 C#のメソッド、プロパティ一覧 正規表現

【C# sharp】正規表現のIsMatch、Match、Matches、Replaceメソッドの使い方

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

今回のテーマ

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

正規表現のメソッド

  • IsMatch
  • Match
  • Matches
  • Replace

C#の正規表現については下記の記事で軽くふれたくらいなので

今回の記事でソースコードを見ながら、正規表現の各メソッドの使い方を学んで下さい。

こちらもCHECK

【C# sharp】2文字以上の文字列でSplit(分割)する方法

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

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

サルモリ
今回は正規表現のメソッドだよ!

正規表現の基本はコチラ

【C#】csharpで正規表現(Regexクラス)について学ぼう!!パターンマッチングを一気に学ぶ!

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 正規表現マス ...

続きを見る

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は値が出力されています。

Matchメソッドはこのようなプロパティが用意されているので、比較的便利に扱うことができます。

Matches

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

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

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

 出力結果
Rockman2
Rockman3
Rockman4

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

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

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

Rから始まる。

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

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

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

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

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

Replace

正規表現でよく使用するReplaceメソッドの使い方です。

String型のメソッドでもお馴染みのReplaceメソッドです。早速ソースコード例をみてみましょう!

Matchesで使用した文字列を使用します。

 出力結果
私はRollchanとRollchanとRollchanがとてもほちぃ。

一致した全ての値が「Rollchan」に変わりましたね!基本的にString型と同じように使用することができます!

注意点としては、第1引数に対象の文字列が来る事くらいです!

まとめ

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

正規表現のメソッドを自由に扱えるようになると文字列の処理の幅が大幅に広がるので是非おぼえてくださいね。

サルモリ
今回の記事は以上だよ!

-C#のLinqのメソッド一覧, C#のメソッド、プロパティ一覧, 正規表現

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock