Mar*_*ela 2 php regex preg-match-all
鉴于输入字符串“ othertext ?.abc.de.fgh.i moretext ”和模式'/\?(\.[a-zA-Z]*)*/'我正在尝试使用函数preg_match_all来获取数组与元素.abc、.de、.fgh和.i匹配,但只有?.abc.de.fgh.i和.i匹配。(测试)
你可以利用\G锚点
(?:\?|\G(?!^))\K\.[a-zA-Z]+
Run Code Online (Sandbox Code Playgroud)
在部分:
(?: 非捕获组
\? 比赛 ?| 或者\G(?!^) 在上一场比赛结束时断言位置,而不是在开始时) 关闭群组\K\.[a-zA-Z]+忘记当前匹配的内容,匹配.和 1+ 个字符 a-zA-Z$re = '/(?:\?|\G(?!^))\K\.[a-zA-Z]+/';
$str = 'othertext ?.abc.de.fgh.i moretext';
preg_match_all($re, $str, $matches);
var_dump($matches[0]);
Run Code Online (Sandbox Code Playgroud)
输出
array(4) {
[0]=>
string(4) ".abc"
[1]=>
string(3) ".de"
[2]=>
string(4) ".fgh"
[3]=>
string(2) ".i"
}
Run Code Online (Sandbox Code Playgroud)