0

我想在正则表达式的帮助下将 urlhttp/https与contatin 匹配(www)或不匹配。(www)以下是我的正则表达式

^((https?)://)(www\\.)| ^$ +(\.[a-z0-9-]+)+([/?].*)?$

但在此,空字符串不起作用,例如:当我输入时http://www.google.com是有效的 url 但http://google.com无效。感谢您提前回答。

4

1 回答 1

1

您无法使用 搜索不存在的零件^$。即期望字符串(行)的开头,字符串(行)的结尾。

只需将“www”部分设为可选:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$

另一个问题是,您要连续搜索两个点:

^((https?)://)(www\\.)?(\.[a-z0-9-]+)+([/?].*)?$
                    ^    ^

我认为更好的模式是

^((https?)://)(www\\.)?([a-z0-9-]+)(\.[a-z0-9-]+)*([/?].*)?$

您是否知道,您排除了许多有效的 URL,只允许字符[a-z0-9-]

于 2013-06-14T07:29:05.307 回答