我正在尝试使用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]
?)应该包含我需要的内容,但似乎没有效果。
感谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
你需要逃避正则表达式中的点。
preg_match("/www\.([^.]*)\.com/", $string, $matches);
正则表达式中的 .
可以匹配(几乎)任何字符,
其中
\.
仅匹配网址中的文字.
点。
www
和com
可用于分隔网址中的字符串,从而提供额外的安全性。
示例:http://regex101.com/r/aA5eC5/2
第一个捕获组(\1
)将包含
example
example-website
修改强>
如果正则表达式要匹配其中.
的字符串,例如www.example.somesite.com
,那么正则表达式可以修改为
preg_match("/www\.(.+)\.com/", $string, $matches);