【问题标题】:Regex to match strings starting and ending with %%正则表达式匹配以 %% 开头和结尾的字符串
【发布时间】:2026-02-13 13:00:01
【问题描述】:

我的文本中有多次出现这种格式的变量:

Example text will %%include%% these %%parameters%%

我正在尝试使用这个:

preg_match('/%%[\s\S]*?%%/i',$output, $matches);

但由于某种原因,我只得到了第一场比赛,有什么想法吗?

【问题讨论】:

  • PHP 中不需要[\s\S](相对于 JavaScript)。当您设置/s 选项时,一个简单的. 就足够了。此外,您不需要 /i 选项,因为您的正则表达式中没有大小写字符:'/%%.*?%%/s' 可以(与 preg_match_all() 一起)。
  • @EmilVikström:嗯,这并不是他问题的真正答案(这就是为什么他只有一场比赛)。但也许 Pierpaolo 可以将其纳入他的答案中。

标签: php regex


【解决方案1】:

使用preg_match_all,因为您需要多个匹配项。

【讨论】:

  • 简单修复,谢谢。我会尽快接受你的回答
最近更新 更多