2015-03-02 68 views
0

我最近做了一個小腳本來捕獲任何通過基於表單提交的textarea的URL。preg_match_all返回數組

使用正則表達式IM是:

'/([\w]+).(local|test|stage|live).site.example.com/' 

,如果提交:

<p>body</p> <p>uk2.local.site.example.net 
training.test.site.example.net</p> 
<p>www.google.com</p> 
<p>sd2.test.site.example.net</p> 

我與返回數組包含:

0 => array(3 
    0 => uk2.local.site.example.net 
    1 => training.test.site.example.net 
    2 => sd2.test.site.example.net 
) 
1 => array(3 
    0 => local 
    1 => test 
    2 => test 
) 

我不知道爲什麼我得到第二個數組並想要清理它。

+1

它paranthesis內的東西相匹配,它被稱爲「子模式」:http://php.net/manual/en/regexp.reference .subpatterns.php – musse1 2015-03-02 16:01:01

+0

謝謝。說得通。 – GaxZE 2015-03-02 16:08:06

回答

2

使用非捕獲組,也難逃點:

'/(\w+)\.(?:local|test|stage|live)\.site\.example\.com/' 
// here __^^