python - 正则表达式查找带或不带 www 的有效 URL,包括点但不包括双点
问题描述
我试图找到一个匹配包含或不包含“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
请参阅正则表达式证明。
解释
-------------------------------------------------------------------------------
(?: 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'
推荐阅读
- gitlab - 在 gitlab ci 中获取分支名称
- mongodb - MongoConnector mapper_parsing_exception with elasticsearch from Mongodb
- python - 如何使 readline 在 python 子进程中工作?
- selenium - 按钮单击在 selenium webdriver 中不起作用
- javascript - RXJS redux observable perform multiple api calls
- ios - 在协调器模式中重用视图控制器
- r - 这里对 R 和 SQL 连接代码的解释是什么?
- unix - 使用 tr 只转换空格,而不是制表符或换行符
- sql-server - Detaching a database as a backup strategy
- angular - 在 Angular 中,将构造函数置于类变量之上是否可以/合适?