捕获具有确切格式的子域

时间:2017-10-16 16:19:31

标签: php regex preg-match

我正在尝试捕获具有确切格式的每个主机名:

letters(+or)numbers.example.com

我的正则表达式:

$pattern = '/([0-9a-z]*\.)example.net/';

应该像:

test2155.example.net // Catch
2155.example.net // Catch
Test2155.example.net // Don't Catch
test2155.example.net655 // Don't Catch
sd@ddfdftest2155.example.net655 // Don't Catch
sd@ddfdftest2155.example.net@655 // Don't Catch

我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您可以使用

([a-zA-Z0-9]+)\Q.example.net\E

a demo on regex101.com

<小时/> 细分说明

([a-zA-Z0-9]+)   # your original expression
\Q.example.net\E # .example.net literally

答案 1 :(得分:2)

将量词从*更改为+并添加字边界\b

/([0-9a-z]+\.)example.net\b