Home > C# > C# 学び直し > 正規表現

C#で正規表現を使用する

新規作成日 2017-11-14
最終更新日

C#は、文字列を簡単に扱うことができる開発言語の1つです。文字列から、特定の文字列を検索したり、置換する際に、正規表現を使用すると、複雑な文字列操作を行うことができます。

特に、大きな文字列から、必要な文字列だけを取り出す場合は、正規表現を使うと便利です。正規表現は、多くのアプリケーションや開発言語で利用する事ができます。

C#では、正規表現を扱うためのクラスが用意されているので、正規表現エンジンと呼ばれる正規表現を処理するプログラムを自分でプログラミングすることなく、プログラム中で正規表現の表現を使って処理したり、アプリケーションに正規表現を使用した機能を提供することが可能です。

正規表現は、アプリケーションや開発言語によって微妙に異なり、いわゆる方言を持っています。C#では、.Net Freameworkの正規表現を使うことになります。

C#で、正規表現を使うためには、次の2つのことを同時に扱うことになります。

  • 正規表現の使い方
  • C#で、正規表現を使ったプログラムを作成する方法

正規表現に慣れ親しんでいない場合、2つのことを、新たに同時に扱うことになります。混乱しないように理解するためには、どちらの内容か判断して、混同しないことが大切です。

正規表現パターンをうまく組み立てると文字列から目的とする部分だけを検索したり、置換することができます。ただ、使いこなすためには、それなりの経験が必要です。

はじめから、全てを理解しようとするのでは無く、まずは、C#で、正規表現を使用する方法を学ぶことを優先し、正規表現パターンについては、いろいろな場所で紹介されているパターンの代表的なものを活用するところから始めましょう。 それだけでも、かなり便利になります。その後、必要に応じて、自在に正規表現パターンを扱える技能の取得を目指して下さい。

正規表現パターンを集める

正規表現は、アプリケーションや開発言語によって微妙に異なり、いわゆる方言を持っています。しかし、正規表現パターンを利用する参考になるので、サンプル集やチートシートのリンクは、集めておくと役に立つことが多いです。

.Netの正規表現を確認するツール

正規表現は、使用する環境ごとに特徴があります。つまり、方言があります。C#で利用できる正規表現は、.Netの方言を持っています。そして、正規表現についての情報の多くは、Perlの正規表現について記述されている事が多いです。ある程度は、同じように動作するので問題ありませんが、使用する前に、意図したとおりに一致するか確認したいことがあります。

自分で、確認するためのアプリケーションを作成するのも良いかと思いますが、.Netの正規表現を確認するツールが公開されています。確認した正規表現パターンは、動作の説明とともに、まとめて参照できるようにしておくことをお勧めします。

Regex.IsMatchメソッド:指定したパターンに一致する部分文字列を持っているか判定する

指定したパターンに一致する部分文字列を持っているか確認する操作は、主に、入力した文字列が期待したパターンに準拠しているかを判別し、適合していない場合、再入力を求める入力文字列の妥当性検証を行う際に利用されます。

Matchメソッド,NextMatch()メソッド:指定したパターンに一致する部分文字列を見つける、取り出す

指定したパターンに一致する部分文字列を見つける、あるいは、取り出すには、Regex クラスのMatchメソッドとMatchクラスのNextMatch ()メソッドの組み合わせ、あるいは、Regex クラスのMatchesメソッドを使用します。

正規表現パターンを使った置換

C# WPFを使ったUIで、TextBox内のテキストを正規表現パターンを使って検索置換する

文字を置換する

C#では、正規表現パターンを使った検索や置換機能を簡単に実装できます。

そこで、TextBox内のテキストを正規表現パターンで検索置換できる、UIを持つアプリケーションを作成したいと思います。

置換リストに従って、対象ファイルを置換する

SerchAndReplace

ListViewを使って、2列のリストを管理し、正規表現パターンを使って、Textファイルを連続置換するアプリケーションを作成します。

htmlテキストを取得し、正規表現パターンに従ってテキストを取り出します。1つ目のグループにしか対応していませんので、必要に応じて修正して下さい。

URLを指定して静的サイトのHTMLテキストを取得し(動的サイトには対応していません)、正規表現文字列を使って必要な文字列取り出すアプリケーションを作成します。 HTMLてキストから、必要な文字列を取り出すための正規表現文字列を探し出す際に活用することができます。このアプリケーションでは、完全一致に加えて、部分一致も使用できます。デフォルトでは、aタグ全体(完全一致)、aタグのhref属性(部分一致)を取り出します。

キー入力の数値だけがTextBoxに表示されます。

PreviewTextInputイベントを使って、TextBoxに値を入力する前に、正規表現を使って、入力された文字が数字であることを確認します。入力された値が、数字の場合のみ、値が入力されます。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」