我想知道一种方法来创建一个正则表达式来验证一个URL,但在中间我可以有一个Tag来替换,像这样:
http://localhost/path1/path2/{SubstitutionTag}/path3/path4/etc
然后我需要一个例外对我的验证,除了这个标签,目前我有这个正则表达式:
^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$
此外,我还需要太除了我的网址上的“localhost”一词。
有什么建议吗?
1条答案
按热度按时间ohfgkhjo1#
我放弃了只使用
Regex
来验证URL的想法,因为我的项目是在C#中,我使用了Regex
和URI
的“混合”来验证URL,结果我得到了以下代码:在上面的源代码中,
Regex
仅用于获取斜杠/
之间的路径,使用它们,我可以用有效的路径替换它们,以便继续进行验证。另一方面,
URI
用于实际验证URL,使用IsWellFormedUriString
和TryCreate
方法,其中IsWellFormedUriString
是实际验证URL的人,而TryCreate
用于验证验证的URI
是在HTTP
还是在HTTPs
中。对于我的场景,只允许这些类型的URL,但是如果不需要这种类型的验证,那么
IsWellFormedUriString
方法就足够了,因为它在内部已经使用了TryCreate
。上面的源代码非常适合我,因为它允许我用它们路径的通用部分来验证URL,以便将来替换,并确保URL的其余部分符合基于
HTTP
或HTTPS
的URL的标准。