PHP正则表达式在包含任何文本的方括号之后选择文本

时间:2019-03-01 23:27:54

标签: php regex

我需要匹配并使用以下文本

... and the start date is [startDate]|(D jS M Y g:iA).

匹配项应返回()之后的[startDate]|括号之间的任何字符(在本例中为D jS M Y g:iA),但应是动态的,以便匹配[ ]|之后的任何字符。即,也应该使用标签[otherDate]|(D jS M Y)

我尝试过使用积极的前瞻性,但未能获得所需的结果。

2 个答案:

答案 0 :(得分:2)

如下所示的模式将捕获括号之间的部分:

\[[^\]]*\]\|\(([^\)]*)\)

第一部分与一个开放括号匹配,然后与0个或多个非封闭括号匹配,最后与一个封闭括号匹配:

\[[^\]]*\]

其余类似。

也许可以在https://regex101.com/上尝试一下。

答案 1 :(得分:-1)

\[startDate\]\|\((.*)\).+

或没有必需的“。”最后:

\[startDate\]\|\((.*)\)