gpt4 book ai didi

.net - 如何编写能够验证 URI 的正则表达式模式?

转载 作者:行者123 更新时间:2023-12-03 14:30:40 25 4
gpt4 key购买 nike

如何创作 正则表达式 匹配所有有效 URI 的字符串,而无法匹配所有无效 URI 的字符串?
为了具体说明我说 URI 时所指的内容,我在下面添加了最新 URI RFC 标准的链接。它定义了我想使用正则表达式验证的实体。
我不需要它来解析 URI。我只需要一个正则表达式来验证。
.Net 正则表达式格式是首选。 (.Net V1.1)

我目前的解决方案:

^([a-zA-Z0-9+.-]+):(//([a-zA-Z0-9-._~!$&'()*+,;=:]*)@)?([a-zA-Z0-9-._~!$&'()*+,;=]+)(:(\\d*))?(/?[a-zA-Z0-9-._~!$&'()*+,;=:/]+)?(\\?[a-zA-Z0-9-._~!$&'()*+,;=:/?@]+)?(#[a-zA-Z0-9-._~!$&'()*+,;=:/?@]+)?$(:(\\d*))?(/?[a-zA-Z0-9-._~!$&'()*+,;=:/]+)?(\?[a-zA-Z0-9-._~!$&'()*+,;=:/?@]+)?(\#[a-zA-Z0-9-._~!$&'()*+,;=:/?@]+)?$

最佳答案

URI specification says :

The following line is the regular expression for breaking-down a well-formed URI reference into its components.

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?


(我想这与另一个答案中给出的 STD66 链接中的正则表达式相同。)
但是分解并不能验证。要正确验证 URI,必须翻译 BNF for URIs到正则表达式。虽然有些 BNF 不能表示为正则表达式,但我认为用这个可以做到。但不应该这样做——这将是一个巨大的困惑。最好使用库函数。

关于.net - 如何编写能够验证 URI 的正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com