ray88’s diary

お仕事で困ったとき用の自分用の覚書

正規表現 否定先読み機能 (?!●●●) 指定された条件にマッチしない文字列の前にある文字列の検索 

■「指定された条件にマッチしない文字列」の前にある文字列を探す

 構文:(?!●●●)

■(例文1)太郎は昭和54年生まれの30歳で太郎の父は昭和25年生まれの59歳です。

■上記の例文で後ろに「年」および数字以外の文字が続く1桁以上の数字にマッチする正規表現([年¥d]として数字ものぞかないと54年生まれの5と25年生まれの2も抜けてしまう)

¥d+(?![年¥d])

■マッチする文字列

30

59

■(例文2)/usr/home/gihyo/hoge.txt

■上記の例文で最後のスラッシュの後ろに続く部分にマッチする正規表現
最後のスラッシュはそれ以降にはスラッシュのない文字列という意味になるので以下の様な否定先読みを利用。

 (?!.*/).+

■マッチする文字列

 hoge.txt