php正则如何匹配除中文加冒号外的字符串?

在php中,如何使用正则表达式匹配两个

标签之间的内容,但排除包含中文加冒号(:)格式的字符串呢?

示例:

要匹配的字符串:

立即学习“PHP免费学习笔记(深入)”;

我是张三分
张无忌: 你真的是张三分?
登录后复制

问题:

使用正则表达式/

. ?匹配会匹配到中文加冒号,而 /[^(x{4e00}-x{9fa5}[::])] }无法正常匹配。

解决方案:

使用preg_match_all函数和否定前瞻断言:

preg_match_all('/(?!.*[x{4e00}-x{9fa5}:]).*&/u', $input, $matches);
登录后复制

其中:

  • /u修饰符启用unicode编码。
  • (?!.*[x{4e00}-x{9fa5}:])否定前瞻断言意味着该模式仅匹配后面没有中文加冒号的字符串。

以上就是PHP正则表达式:如何匹配两个标签之间的内容且排除包含中文冒号的字符串?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部