RegEx匹配字符串开头的符号,或字符串本身的开头

c00*_*0fd 0 javascript regex

我正在尝试提出一个可以在一组子域中捕获TLD的正则表达式.所以我有这个:

/\.?google\.com$/i
Run Code Online (Sandbox Code Playgroud)

这应该做以下匹配:

sgoogle.com            -- no match
google.com             -- match
maps.google.com        -- match
job_s.map.google.com   -- match
place.google.com.eu    -- no match
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了第一个,即sgoogle.com它也匹配,它不应该.

所以我很好奇,有没有办法指定我在哪里\.?匹配点或字符串的开头?

Luc*_*ski 5

你快到了.从字面上看,您的要求是:

(?:^|\.)google\.com$
Run Code Online (Sandbox Code Playgroud)

但是根据你的需要,这可能会更好(或者不是,你告诉我):

\bgoogle\.com$
Run Code Online (Sandbox Code Playgroud)

\b方法字边界.