2008年5月8日木曜日

正規表現その1

少し調べたので簡単な基本文法から。

文字列のパターンマッチングに使用する。
決まったパターンの文字列を検索する場合など。

文字列をそのまま記述すると部分一致となる。
 a ⇒ a がマッチする

[]:[]内に記述した1文字と一致する。
 [abc] ⇒ a か b か c がマッチする。
 良く使うのは
  [a-z]半角英の小文字
  [A-Z]半角英の大文字
  [0-9]半角数字
  [a-zA-Z0-9]半角英数字

*:直前の1文字を0個以上繰り返す
 a*b ⇒ b, ab , aab , aaab, aaaab , aaaaab などがマッチする
[0-9]*b ⇒ b, 0b, 99b, 123b, 009b, 033302b などがマッチする

+:直前の1文字を1個以上繰り返す
 a+b ⇒ ab , aab , aaab, aaaab , aaaaab などがマッチする
    (1以上繰り返しのため b はマッチしない)
[0-9]+b ⇒ 0b, 99b, 123b, 009b, 033302b などがマッチする
    (1以上繰り返しのため b はマッチしない)

?:直前の1文字を1個または0個
 a?b ⇒ b, ab がマッチする
[0-9]?b ⇒ b, 0b, 9b, 3b, 5b などがマッチする

^:直後の1文字が行の最初の文字にマッチする。
$:直前の1文字が行の最後の文字にマッチする。


1以上の数値にマッチさせる正規表現(先頭ゼロ埋めを許さない)
[1-9][0-9]*

1 // マッチ
11 // マッチ
900 // マッチ
009 // マッチしない

.

ラベル