【发布时间】:2015-03-06 13:43:46
【问题描述】:
$str='\add[sometext]{\begin{equation}\label{eqn:3}
f_{1} =
\begin{cases}}
\beta_{1} + \beta_{2}f_{2} & f_{2}\leq \gamma\\
\beta_{1} + \beta_{2}\gamma + \beta_{4}(f_{2}-\gamma) & f_{2} >\gamma
\end{cases}sdsdssd,
\end{equation}}
it may have some extra code here with {}
\end{equation}}'
我需要提取\add[sometext]{ 和} 之间的字符串(ietill \add tag end 大括号)\add[sometext]{ 和} 之间的字符串可能会有所不同,所以我不能在正则表达式模式中指定这些字符串我应该只考虑\add[sometext]的开始和结束花括号
预期输出:
\begin{equation}\label{eqn:3}
f_{1} =
\begin{cases}
\beta_{1} + \beta_{2}f_{2} & f_{2}\leq \gamma\\
\beta_{1} + \beta_{2}\gamma + \beta_{4}(f_{2}-\gamma) & f_{2} >\gamma
\end{cases}sdsdssd,
\end{equation}
我试过了:
$str=preg_replace('/\\\\add\s*\[\s*\w*\]\s*{(.*?)}/s,$1,$match)
我不知道如何获取相关的花括号(即\add tag start { till end })
【问题讨论】:
标签: php regex preg-replace