我想创建一个正则表达式来捕获基于可选子字符串的可选组。示例可能是:
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