【C#入門】正規表現の使い方総まとめ(Match/Matches/Replace)

中沢 丈
書いた人 中沢 丈

こんにちは!エンジニアの中沢です。

C#には文字列のパターンを指定して検索するための「正規表現」があります。

正規表現でパターンを指定すれば任意の文字列を検索して書き換えることができるので、上手く活用してください。

この記事では、

・正規表現とは
・IsMatchメソッドでパターンに一致するか判定する方法
・Matchメソッドで最初に一致した部分を抽出する方法
・Matchesメソッドで一致したすべての部分を抽出する方法

という基本的な内容から、

・Replaceメソッドで置換する方法

などの応用的な使い方に関しても解説していきます。

正規表現とは

正規表現とはいくつかの文字列のパターンを一つの形式でまとめて表現するための表現方法のことです。

主な正規表現については次の表のとおりになります。

記号記号の説明例の説明
.任意の1文字。改行文字は除く。.+任意の文字列
*直前の1文字の0回以上の繰り返しと一致hoge*hogeもしくはhogee...と一致
^行の先頭^[0-9]行頭が数字
$行の末尾^.{10}$10文字の行
[ ]カッコ内の任意の1文字と一致。「-」で範囲指定可。[a-z]小文字のアルファベット1文字と一致
[^ ]カッコ内の任意の1文字と不一致。「-」で範囲指定可。[^A-Z]大文字のアルファベット以外
+直前の文字の1個以上の繰り返しと一致hoge+hogee...と一致
?直前の文字の0または1文字と一致hoge?eと一致
{ }カッコ内の数値の繰り返しと一致{n}直前の文字のn個の繰り返しと一致
{,n}直前の文字のn個以下の繰り返しと一致
{m,}直前の文字のm個以上の繰り返しと一致
{m,n}直前の文字のm個以上、n個以下の繰り返しと一致
|直前、直後どちらかのパターンに一致hoge|piyohogeまたはpiyo
( )カッコ内をグループ化。マッチした内容は参照可。

IsMatchメソッドでパターンに一致するか判定する

ここでは、IsMatchメソッドでパターンに一致するか判定する方法を解説します。

IsMatchメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。

次のプログラムで確認してみましょう。

実行結果:

このようにして指定したパターンが含まれるかどうかを判定することができました。

抽出する方法

Matchメソッドで最初に一致した部分を抽出

ここでは、Matchメソッドで最初に一致した部分を抽出する方法を解説します。

Matchメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。

Matchメソッドは検索対象の文字列の中に一致する部分に複数あった場合でも、最初に一致した文字列だけを返すので注意してください。

次のプログラムで確認してみましょう。

実行結果:

このプログラムでは、0~9のいずれかの数字に一致するパターンの「[0-9]」を指定しています。

この実行結果のように、初めに現れる数値の「1」にマッチするため抽出することができます。

Matchesメソッドで一致したすべての部分を抽出

ここでは、Matchesメソッドで一致したすべての部分を抽出する方法を解説します。

Matchesメソッドは指定したパターンに一致したすべての文字列を抽出するために使います。

Matchesメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。

次のプログラムで確認してみましょう。

実行結果:

このプログラムでは、検索対象の文字列からすべての数値を抽出しています。

抽出する方法についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

Replaceメソッドで置換する方法

ここでは、Replaceメソッドで置換する方法を解説します。

Replaceメソッドは第1引数に検索対象の文字列を指定し、第2引数に置換後の文字列を指定します。

次のプログラムで確認してみましょう。

実行結果:

このようにして指定した文字列を置換することができました。

Replaceメソッドの詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

まとめ

いかがでしたか?

今回は正規表現でパターンを指定して検索する方法を解説しました。

正規表現を使って任意のパターンを抽出したり、置換することができるので、ぜひ活用してくださいね。

もし、正規表現の使い方を忘れてしまったらこの記事を確認してください!

自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]