繁体   English   中英

在Regex PHP中捕获重复的组

[英]Capturing repeated group in Regex PHP

我正在尝试捕获PHP正则表达式中的重复组。

我正在使用的表达式是: (?:.*\\s|^)@\\[(\\d+)\\] ,它将匹配以下内容:

some text here @[2] some more text并在比赛中返回2。

现在我要匹配:

some text here @[2] some more text @[3] more text然后返回[2,3]。 现在,我只能用以下表达式返回3(最后一个元素): (((?:.*\\s|^)@\\[(\\d+)\\])+)

我已经读过这个这个 ,但是我无法让那些使用preg_match或preg_match_all的人工作。

任何对此的投入将不胜感激。

我建议这个更简单的解决方案:

$string = 'some text here @[2] some more text @[3] more text';
preg_match_all('/@\[(\d+)\]/', $string, $matches);
$matches = $matches[1];
$result = '[' . implode(', ', $matches) . ']';
echo $result; // [2, 3]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM