Regex 正则表达式分组(检索子域)

Regex 正则表达式分组(检索子域),regex,Regex,我正在尝试编写一个正则表达式,将任何url与除“www”之外的子域相匹配。我试图在匹配后检索子域,但似乎无法正确分组。我的第一组匹配整个url。我只允许在子域中使用小写字母、数字和“-”。如果模式匹配,我只需要检索子域 ^(((?!www)[a-z0-9\\-]*))+(\\.)+?example\\.com.*$ 这应该对你有用 更新 我还找到了另一条回应你问题的线索 组0将拥有整个URL,组1将只包含子域什么语言?而且,它可能不是第一个组,但是您只会得到一个完整的字符串,它成功地将您的模

我正在尝试编写一个正则表达式,将任何url与除“www”之外的子域相匹配。我试图在匹配后检索子域,但似乎无法正确分组。我的第一组匹配整个url。我只允许在子域中使用小写字母、数字和“-”。如果模式匹配,我只需要检索子域

^(((?!www)[a-z0-9\\-]*))+(\\.)+?example\\.com.*$
这应该对你有用

更新

我还找到了另一条回应你问题的线索


组0将拥有整个URL,组1将只包含子域

什么语言?而且,它可能不是第一个组,但是您只会得到一个完整的字符串,它成功地将您的模式匹配为“第一个组”。这可能不是正则表达式的工作,而是您选择的语言中的现有工具的工作。正则表达式并不是一根魔杖,你在遇到每一个涉及字符串的问题时都会挥舞它。您可能希望使用已经编写、测试和调试的现有代码。在PHP中,使用函数。Perl:。鲁比:。网络:谢谢!简明扼要!
/(http:\/\/)?(([^.]+)\.)?example\.com/ 
/^(?!www)([a-z0-9\-]+)\.example\.com.*$/