0

我知道已经存在验证链接的问题。但是我对正则表达式很不好,我不知道如何验证用户输入(在 html 中)是否等同于这些 URL:

http://www.domain.com/?p=123456abcde

或者

http://www.domain.com/doc/123456abcde

我想是这样的

/^(http://)(www)((\.[A-Z0-9][A-Z0-9_-]*).com/?p=((\.[A-Z0-9][A-Z0-9_-]*)

我需要正则表达式或两个 URL。谢谢

4

3 回答 3

2

这可能不是正则表达式的工作,而是您选择的语言的现有工具。 正则表达式不是你在碰巧涉及字符串的每个问题上挥舞的魔杖。您可能希望使用已经编写、测试和调试过的现有代码。

在 PHP 中,使用该parse_url函数。

Perl:URI模块

红宝石:URI模块

.NET:“Uri”类

于 2013-08-22T15:55:01.770 回答
1

这将匹配任何具有您指定格式的有效域。

http(s)?:\/\/(www\.)?[a-zA-Z0-9-\.]+\.[a-z]{2,6}\/(\?p=|doc\/)[a-z0-9]+

如果您只想要域,请替换[a-z]{2,6}为。在这里查看它的实际应用。com.com

于 2013-08-22T15:45:18.560 回答
1

这将匹配您的两个字符串。

(http:\/\/)?(www\.)?([A-Z0-9a-z][A-Z0-9a-z_-]*).com\/(\?p=)?([A-Z0-9a-z][\/A-Za-z0-9_-]*)

我强烈建议使用正则表达式检查器,您可以为(几乎)每个操作系统找到一些,甚至还有一些在线检查器,例如:http ://regexpal.com/或http://www.quanetic.com/Regex

于 2013-08-22T15:34:01.500 回答