开发者社区 问答 正文

下面问题中正则语句表达的意思

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

这个正则中的|s|()代表什么意思?有人知道吗

展开
收起
落地花开啦 2016-06-16 14:29:46 1910 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

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

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

    (^|\s|\()

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

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

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

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

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

    2019-07-17 19:40:50
    赞同 展开评论
问答地址: