热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一句正则不懂

{代码...}这个正则中的|s|()代表什么意思?有人知道吗
preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i", $str, $matches)

这个正则中的|\s|&#40;)代表什么意思?有人知道吗

回复内容:

preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i", $str, $matches)

这个正则中的|\s|&#40;)代表什么意思?有人知道吗

我把每一部分都解释给题主吧。

#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i

两边的 # 是 PCRE 分隔符,最后一个 i 表示忽略大小写。

(^|\s|\()

字符串开头,或者有空格分隔,或者匹配一个左括号。这个部分是一个未命名分组。

((http(s?)://)|(www\.))

匹配 http:// 或者 https:// 或者 www. 。这个部分是一个未命名分组,其中又分成两个未命名分组。

(\w+[^\s\)\<]+)

匹配至少一个字母数字,之后再匹配至少一个不是空格、右括号、左尖括号的字符。这里又是一个未命名分组。

结束。

推荐两个debug正则的站点:

  • debuggex 界面凑合,功能强大,支持多种语言的正则
  • regexper 比较好看,只支持Javascript的正则

推荐阅读
author-avatar
Still丶某某_546
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有