正则表达式查找带有或不带 www 的有效 URL,包括点但不包括双点
regex to find valide URL with or without www, including dot but excluding double dots
我试图找到一个正则表达式来匹配包含或不包含 'www' 的 URL,后跟可以包含点但不能包含两个或多个连续点的有效字符串。为了简单起见,我将问题仅限于具有子域和 .com 域的 URL。
例如:
www.aBC.com #MATCH
abc.com #MATCH
a_bc.de8f.com #MATCH
a.com #MATCH
abc #NO MATCH
abc..com #NO MATCH
我用正则表达式得到的最接近的是 \w+.[\w]+.com
,但这不匹配简单的“a.com”。我正在使用“\w”而不是“。”因为否则我不知道如何依次避免两个或更多点。
感谢任何帮助。
使用
(?:\w+\.)*\w+\.com
参见regex proof。
解释
-------------------------------------------------------------------------------
(?: group, but do not capture (0 or more times
(matching the most amount possible)):
--------------------------------------------------------------------------------
\w+ word characters (a-z, A-Z, 0-9, _) (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
)* end of grouping
--------------------------------------------------------------------------------
\w+ word characters (a-z, A-Z, 0-9, _) (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
com 'com'
我试图找到一个正则表达式来匹配包含或不包含 'www' 的 URL,后跟可以包含点但不能包含两个或多个连续点的有效字符串。为了简单起见,我将问题仅限于具有子域和 .com 域的 URL。 例如:
www.aBC.com #MATCH
abc.com #MATCH
a_bc.de8f.com #MATCH
a.com #MATCH
abc #NO MATCH
abc..com #NO MATCH
我用正则表达式得到的最接近的是 \w+.[\w]+.com
,但这不匹配简单的“a.com”。我正在使用“\w”而不是“。”因为否则我不知道如何依次避免两个或更多点。
感谢任何帮助。
使用
(?:\w+\.)*\w+\.com
参见regex proof。
解释
-------------------------------------------------------------------------------
(?: group, but do not capture (0 or more times
(matching the most amount possible)):
--------------------------------------------------------------------------------
\w+ word characters (a-z, A-Z, 0-9, _) (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
)* end of grouping
--------------------------------------------------------------------------------
\w+ word characters (a-z, A-Z, 0-9, _) (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
com 'com'