オプションの部分文字列に基づいてオプションのグループをキャプチャする正規表現を作成したいと考えています。例は次のとおりです。
DATEF[[%d/%m/%Y %H:%M
DATEF[[%H:%M]]
DATEF
TIME
等
DATE
and パラメータ%H:%M
をキャプチャしたいと思います。式(.*?)\[\[(.*?)\]\]
はパラメーターで機能しますが、オプションの除外文字列は失敗し、null を返します。
オプションの部分文字列に基づいてオプションのグループをキャプチャする正規表現を作成したいと考えています。例は次のとおりです。
DATEF[[%d/%m/%Y %H:%M
DATEF[[%H:%M]]
DATEF
TIME
等
DATE
and パラメータ%H:%M
をキャプチャしたいと思います。式(.*?)\[\[(.*?)\]\]
はパラメーターで機能しますが、オプションの除外文字列は失敗し、null を返します。
私はこれを提案します:
/^([a-zA-Z]+)(?:\[\[([^\]]+)\]\])?$/
グループ 1 は関数名を保持し、a が存在する場合、グループ 2 はと[[
の間のすべてをキャプチャします。正方形が存在しない場合、グループ 2 はまったく存在しません。[[
]]
編集:
外側の非キャプチャ グループにキャプチャ グループが含まれていることに注意してください。
/^([a-zA-Z]+) #captures the command
(?:\[\[ #matches, but not captures the opening brackets
([^\]]+?) #captures the content of the brackets
\]\])? #matches the closing brackets
$/x