ray88’s diary

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

正規表現 先後読みによる条件分岐 (?[先後読み] ●●●|▲▲▲)

■ある条件を満たす場合に適用する正規表現と満たさなかった場合に適用する正規表現を指定できる。

構文:(?(条件)●●●|▲▲▲)

■(例文)ただいま20時です。2日後の午前03時(明日の27時)までに30枚の原稿を書かなければなりません。

■「時」の前にあたる数字は、2桁で、00から24までの場合のみマッチする
 それ以外の数字の場合は、1桁以上の数字にマッチする。

 (?(?=¥d+時)(?:[01][0-9][2[0-4])|¥d+)

■マッチする文字列

20

2

03

30