Home > Backend Development > PHP Tutorial > 一句正则不懂

一句正则不懂

WBOY
Release: 2016-06-06 20:48:05
Original
1188 people have browsed it

<code>preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\</code>
Copy after login
Copy after login

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

回复内容:

<code>preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\</code>
Copy after login
Copy after login

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

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

<code class="lang-regexp">#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\</code>
Copy after login

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

<code class="lang-regexp">(^|\s|\()
</code>
Copy after login

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

<code class="lang-regexp">((http(s?)://)|(www\.))
</code>
Copy after login

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

<code class="lang-regexp">(\w+[^\s\)\</code>
Copy after login

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

结束。

推荐两个debug正则的站点:

  • debuggex 界面凑合,功能强大,支持多种语言的正则
  • regexper 比较好看,只支持javascript的正则
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template