すぐ使える!正規表現サンプル集
〜 お勉強編 〜
Google
WWW を検索 hodade.com を検索

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

ちょっと高度な検索

前回は基本的な検索の仕方を説明しました。今回はちょっと高度な検索について説明します。


特別な意味を持つ文字 その二

前回の特殊文字に加えて、下記の特殊文字を使用します。

正規表現説明使用例例の説明
|選択AA|BB|CCAAまたはBBまたはCCに一致
()グループ化A(01|02|03)A01またはA02またはA03に一致
^行の最初^A行頭のAに一致
$行の最後A$行末のAに一致
[^A]A以外の文字[^ABC]+DEFなど1つ以上のABC以外の文字に一致
\s空白,タブ\s+1つ以上の空白に一致
\S空白文字以外\S+1つ以上の空白以外の文字に一致
\d数値文字\d+123など1つ以上の数字に一致
\D\d以外\D+ABCなど1つ以上の数字以外の文字に一致
\w英数文字かアンダーバー\w+ABC123など1つ以上の英数文字かアンダーバーに一致
\W\w以外の文字\W+-+!?など1つ以上の英数文字かアンダーバー以外(記号)に一致
\b単語の境界(\wと\Wの境界)ABC\bDEFABCとDEFの間に英数文字かアンダーバー以外の文字がある文字列に一致

選択とグループ化を使ってみる

選択とグループ化について詳しく説明します。

すいか|メロン

と書くと、スイカまたはメロンのどちらかに一致します。これを選択といい、選択肢を|で分けて記述します。

(あまい){2}すいか

と書くと、「あまいあまいすいか」に一致します。この例では、「すいか」をグループとし、それが2回出現することを表します。グループにしたい文字列を()で囲んで記述します。

上記で説明した、選択とグループを使って、

(すいか|メロン)(アイス|シェーク)

と記述すると、「すいかアイス」、「スイカシェーク」、「メロンアイス」、「メロンシェーク」のどれかに一致するようになります。

問題を解いてみよう

  1. 以下はことわざとオヤジギャグを行単位で記述した文字列である。「犬」と「猫」で始まる文字列に一致する正規表現を書きなさい。

    犬も歩けば棒にあたる
    ニューヨークで入浴
    猫に小判
    梅は旨めぇ
    猿も木から落ちる
    飼い犬に手をかまれる
    借りてきた猫
    


    こたえ:[ ^(犬|猫).+$ ]

  2. 以下は麻雀牌を上がれる状態にし、行単位で記述した文字列である。各牌はスペース区切りで並べられている。九連宝燈のみに一致する正規表現を書きなさい。(九連宝燈は、1と9を3牌づつ、2〜8を1牌づつ、そして1〜9を1牌集めたもの。)

    1萬 1萬 3萬 4萬 5萬 7筒 8筒 9筒 2索 3索 4索 5索 6索 7索
    1萬 1萬 1萬 2萬 3萬 4萬 5萬 6萬 7萬 8萬 9萬 9萬 9萬 9萬
    1萬 1萬 3萬 3萬 2筒 2筒 7筒 7筒 9筒 9筒 南  南  北  北
    


    こたえ:[ ^(1萬 ){3,4}(2萬 )+(3萬 )+(4萬 )+(5萬 )+(6萬 )+(7萬 )+(8萬 )+(9萬 ?){3,4}$ ]

<<前のステップへ 次のステップへ>>




全角文字を検索する正規表現もあります。

1.正規表現とはなにか?
正規表現を簡単に説明すると?

2.正規表現を使う準備
まずはエディタの設定

3.正規表現サンプル集
【検索編】

検索で使える正規表現

4.正規表現サンプル集
【置換編】

置換で使える正規表現

5.正規表現のお勉強
正規表現で検索
少し高度な検索
文字列置換
最短一致について
エスケープ文字のこと
上から順番にだんだん難しくなります

6.エディタの強調表示でテキストに色づけ
色つきで見やすくできます

7.プログラムで正規表現を使う
各種プログラム言語でも使えます

8.ナイスな記事集
ここよりスゴイ正規表現がある


Since 2005.09.30 / HODADE SYSTEMS / Update 2010.03.30