Heim >Backend-Entwicklung >PHP-Tutorial >一句正则不懂

一句正则不懂

WBOY
WBOYOriginal
2016-06-06 20:48:051189Durchsuche

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

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

回复内容:

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

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

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

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

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

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

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

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

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

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

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

结束。

推荐两个debug正则的站点:

  • debuggex 界面凑合,功能强大,支持多种语言的正则
  • regexper 比较好看,只支持javascript的正则
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn