.NET開発者のためのブログメディア

C#の正規表現を使って文字列パターンを検索する方法
2019年10月21日
C#には正規表現という検索方法が存在します。この記事では、この正規表現についてご紹介します。C#を使った開発の際に業務の効率化を図りたい方は、ぜひ参考にしてみてください。
- PG
- そもそも正規表現ってどういった意味なのでしょうか?
- PL
- 正規表現っていうのは、いくつかの文字列のパターンをひとつの形式でまとめて表現するための表現方法ですね。
目次
C#の正規表現をピックアップ
C#には多くの正規表現が準備されています。
そのため、使用頻度が高い正規表現の代表例をいくつかピックアップします。
正規表現のパターン例
^ | 文字列の先頭を意味します。 |
$ | 文字列の末尾を意味します。 |
\d | 全角・半角関係なく数値を意味します。 |
\D | 数値以外を意味します。 |
[0-9] | 0~9の半角数字いずれかの1文字を意味します。 |
[^0-9] | 0~9の半角数字以外の1文字を意味します。 |
[a-z] | a~zのいずれかの1文字を意味します。 |
[^A-Z] | A~Z以外の1文字を意味します。 |
( ) | グループ化を意味します。 |
{n} | n回の一致を意味します。 |
{n,} | n回以上の一致を意味します。 |
{n, m} | n回以上m回以下の一致を意味します。 |
* | 0回以上の一致を意味します。 |
+ | 1回以上の一致を意味します。 |
? | 0回または1回の一致を意味します。 |
正規表現の使い方代表例
^\d+$ | 数値と一致します。数字の半角・全角は関係なしです。 |
^[0-9]+$ | 数値と一致します。ただし、半角数字のみです。 |
^[0-9]{3}-[0-9]{4}$ | 郵便番号です。 |
^[!-~]*$ | 半角英数と半角記号に一致します。 |
^[0-9a-zA-Z]*$ | 0文字以上の半角英数字と一致します。空白スペースも可です。 |
^[0-9a-zA-Z]+$ | 1文字以上の半角英数字と一致します。空白スペースは不可です。 |
C#の正規表現を利用した文字列検索
C#では、System.Text.RegularExpressions名前空間のIsMatchメソッドを利用して文字列の検索を行います。
- using System.Text.RegularExpressions;でIsMatchメソッドを利用可能にします。
- bool result = Regex.IsMatch(“{検索対象文字列}”, “{正規表現パターン}”);で、第1引数に検索対象文字列を、第2引数に正規表現パターンをそれぞれ設定し、文字列が正規表現パターンと一致すればTrueを返し、不一致ならFalseを返します。
郵便番号の正規表現方法を例に挙げてみますと、
1 |
System.Text.RegularExpressions.Regex.IsMatch(TextBox1.Text,"^[0-9]{3}-[0-9]{4}$")) |
となります。第1引数には画面などで郵便番号を入力するテキストボックスを、第2引数には郵便番号の正規表現を設定しています。
この使い方が基本形です。
- PG
- 正規表現を活用すると、検索が一気に楽になりますね。これから積極的に活用します。
- PL
- はい。活用してくださいね。正規表現を利用すれば業務の効率化を図れます。文字列の置換などを一気に行いたい時などに威力を発揮しますよ!
業務の効率化を図りましょう
正規表現を使用しての文字列検索は慣れが必要ですが、慣れれば便利な検索手段になります。
もちろん、正規表現を使用せずに文字列の検索は可能です。
しかし、正規表現を利用できる方が検索の幅が広がるため、プログラムの質も向上して業務効率化につながりますので積極的に使用していきましょう。