Linq 正規表現

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

C#を学ぶならガチで読んで欲しい本はこちら


今回のテーマ

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

正規表現のメソッド

  • IsMatch
  • Match
  • Matches
  • Replace

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

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

こちらもCHECK

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

C#を学ぶならガチで読んで欲しい本はこちら 今回のテーマContents1 今回のテーマ1.1 String型のSplitメソッド1.2 Regexクラスを使用したやり方1.3 まとめ 今回は2文字以 ...

続きを見る

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

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

IsMatch

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

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

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

 出力結果
Rockman2
Rockman3
Rockman4

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

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

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

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

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

 出力結果
3

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#やるならこの参考書は絶対読んでいてほしい!

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での指定は出来ません。

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

Replace

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

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

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

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

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

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

まとめ

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

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

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

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#を学ぶならガチで読んで欲しい本はこちら


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

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


映画ドキュメンタリ版のブログはこちら
レインボーまとめサイト(映画ドキュメンタリー版)
ポケモンまとめブログはこちら
レインボーまとめサイト(ポケモン版)

-Linq, 正規表現

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock