ユーザ用ツール

サイト用ツール


it技術:正規表現

文書の過去の版を表示しています。


正規表現

概要

正規表現とは、文字列内で文字の組み合わせを照合するために用いられるパターンです。
参照:正規表現

例えば携帯電話の番号
090-1234-5678
080-2011-0702
etc…
3桁の数字-4桁の数字-4桁の数字

正規表現を使うと、1つの正規表現で全ての電話番号が検索ができる。

\d{3}-\d{4}-\d{4}

正規表現で使用する特殊文字

下記の特殊文字をメタ文字といいます。
メタ文字を単なる普通の文字として検索したい場合は、メタ文字の前に「\」を付加します。

.   ^   $   [   ]   *   +   ?   |   (   )

文字クラスの略記法

良く使われる文字クラスには省略記法が存在します。

  • \w 単語構成文字 [a-zA-Z0-9_]
  • \W 非単語構成文字 [^a-zA-Z0-9_]
  • \s 空白文字 [ \t\r\n\f\v]
  • \S 非空白文字 [^ \t\r\n\f\v]
  • \d 10進数字 [0-9]
  • \D 非10進数字 [^0-9]
  • \h 16進数字 [0-9a-fA-F]
  • \H 非16進数字 [^0-9a-fA-F]

これらの「空白」「数字」などは ASCII の範囲の文字のみを対象としています。 いわゆる「全角アルファベット」「全角空白」「全角数字」などは ここの空白、数字、には含まれません。

説明

[slideshare id=14525756&doc=regularexpression-120930100316-phpapp02]

覚えておくといいこと

最長マッチと最短マッチ

「.*」 … なんでもいい文字の連続(最長)
正規表現 JR.*駅
対象文字 JR静岡駅から浜松駅まで
※可能な限り合致するまでヒットする

「.*?」 … なんでもいい文字の連続(最短)
正規表現 JR.*?駅
対象文字 JR静岡駅から浜松駅まで
※可能な限り少ない回数でヒットする

後方参照

正規表現を使って置換をする場合、正規表現でマッチした内容をそのまま使用したい場合がある、その場合に後方参照を使用する。
後方参照は、正規表現にて括弧で括られた分を「$」の後の数値を付けて「$1」などと記述する。

対象文字列 1234567890
正規表現   (\d\d\d\d)(\d\d)(\d\d\d\d)
置換文字列 $3-$1-$2
$1 = 1234
$2 = 56
$3 = 7890
結果 7890-1234-56

参照

it技術/正規表現.1490865633.txt.gz · 最終更新: 2017/03/30 18:20 by yajuadmin