正则表达式:从URL检索www之间的所有内容。和.com

时间:2014-11-05 11:28:23

标签: php regex

我正在尝试使用PHP的preg_match()来检索网址的www..com之间的所有内容。

e.g:

www.example.com将返回example

www.example-website.com将返回example-website

我很幸运,我正在使用 始终 的网址开始www.并始终结束.com,因此它不会需要特别复杂,占很多用例。

但是,我的正则表达式知识很少见。

我的尝试:

preg_match("/.([^.]*)./", $string, $matches);

根据RegExr,第二场比赛($matches[1]?)应该包含我需要的内容,但似乎没有效果。

感谢。

2 个答案:

答案 0 :(得分:1)

(?<=www\.)(.+?)(?=\.com)

试试这个。抓住捕获。参见演示。

http://regex101.com/r/iZ9sO5/10

答案 1 :(得分:0)

你需要逃避正则表达式中的点。

preg_match("/www\.([^.]*)\.com/", $string, $matches);
正则表达式中的

.可以匹配(几乎)任何字符,

其中

\.仅匹配网址中的文字.点。

wwwcom可用于分隔网址中的字符串,从而提供额外的安全性。

示例:http://regex101.com/r/aA5eC5/2

第一个捕获组(\1)将包含

example
example-website

修改

如果正则表达式要匹配其中.的字符串,例如www.example.somesite.com,那么正则表达式可以修改为

preg_match("/www\.(.+)\.com/", $string, $matches);