我编写了一个Javascript routine ,在给定主机名或URL的情况下,它的值为finds the root domain.
function getRootDomain(s){
var sResult = ''
try {
sResult = s.match(/^(?:.*\:\/?\/)?(?<domain>[\w\-\.]*)/).groups.domain
.match(/(?<root>[\w\-]*(\.\w{3,}|\.\w{2}|\.\w{2}\.\w{2}))$/).groups.root;
} catch(ignore) {}
return sResult;
}
将两个正则表达式规则组合成一个规则的技巧是什么?
多年来,我用this tutorial来提升我现有的RegExp经验,尽管我从未真正理解lookbehinds和lookaheads(这在这里可能有用?),然后在RegEx101.com使用伟大的工具进行try 和错误.我试着用<root>
后面的替换<domain>
后面的,以及它的变体,但都失败了.