PHP正则表达式匹配

玛丽亚·加布里埃拉(Maria Gabriela):

给定输入字符串“ othertext?.abc.de.fgh.i moretext ”和模式'/\?(\.[a-zA-Z]*)*/',我正在尝试使用函数preg_match_all来获取数组与元素匹配名为.abc由Matchi.com提供回到.fgh.I但只?.abc.de.fgh.i。我是匹配的。测试

第四只鸟:

您可以利用\G锚点

(?:\?|\G(?!^))\K\.[a-zA-Z]+

部分:

  • (?: 非捕获组
    • \? 比赛 ?
    • | 要么
    • \G(?!^) 在上一场比赛的末尾而不是在开始时断言位置
  • ) 封闭组
  • \K\.[a-zA-Z]+忘记当前匹配的内容,并匹配.和1个字符a-zA-Z

正则表达式演示 | PHP演示

$re = '/(?:\?|\G(?!^))\K\.[a-zA-Z]+/';
$str = 'othertext ?.abc.de.fgh.i moretext';

preg_match_all($re, $str, $matches);
var_dump($matches[0]);

输出量

array(4) {
  [0]=>
  string(4) ".abc"
  [1]=>
  string(3) ".de"
  [2]=>
  string(4) ".fgh"
  [3]=>
  string(2) ".i"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章