RegEx匹配字符串开头的符号或字符串本身的开头
问题描述:
我试图想出一个可以在一组子域中捕获顶级域名(TLD)的正则表达式。所以我有这样的:RegEx匹配字符串开头的符号或字符串本身的开头
/\.?google\.com$/i
这应该做到以下几点匹配:
sgoogle.com -- no match
google.com -- match
maps.google.com -- match
job_s.map.google.com -- match
place.google.com.eu -- no match
这个工作,除了第一个,即sgoogle.com
它匹配为好,这是不应该的。
所以我很好奇,有没有办法指定我在哪里做\.?
匹配一个点或字符串的开头?
答
你快到了。从字面上看,你的要求是:
(?:^|\.)google\.com$
但根据您的需求,这可能会更好(或没有,你告诉我):
\bgoogle\.com$
的\b
意味着字边界。
非常好。谢谢!我知道我几乎在那里:) – c00000fd 2014-10-31 21:09:53
至于你的'\ b'建议,不幸的是它不会工作,因为它不会破解,就像'some-google.com'一样 – c00000fd 2014-10-31 21:10:26
好吧,我看到了,我以为你只想匹配像google.com这样的固定域名 – 2014-10-31 21:11:18