这更像是一个通用的正则表达式问题,而不是特定于 PHP 的问题。
我得到了不同的字符串,可能看起来像:
A/B/PA ID U/C/D
我正在尝试使用以下方法提取中间斜杠中包含空格(“/PA ID U”)的段:
preg_match('/(\/PA .+)(\/.+|$)/', $string, $matches);
然而,我得到的不是“/PA ID U”,而是“/PA ID U/C/D”。
如何使它在最后一组中优先匹配“/.+”而不是“$”?
补充笔记:
我需要最后一组来匹配另一个“/somethingsomthing”或“”,因为字符串变化很大。如果我只匹配“/.+”,如果它位于行尾,例如“A/B/PA ID U”,我将无法获得“/PA ID U”。
基本上,我需要能够像这样提取特定的段:
鉴于:
"A/B/PA ID U/PA ID U/C/D"
提炼:
(A), (B), (PA ID U), (PA ID U), (C), (D)
[更新]
我试图避免使用split()
orexplode()
因为这意味着我必须单独匹配“PA ID U”模式。除了仅提取斜杠分隔的段之外,我还需要验证子字符串是否与特定模式匹配。