gpt4 book ai didi

c# - 有效 URL 字符的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:10:52 25 4
gpt4 key购买 nike

我试图在将字符串保存到我的数据库之前检查它,

这是一个示例字符串“画笔”

现在 & 无效,我如何使用正则表达式来检测这个,我想检查这些字符的其他字符£、$、%、# 等

我试过了

Regex RgxUrl = new Regex(@"[^A-Z0-9.\-\)\(]");

但是之前的“paint & brush”示例仍然有效

最佳答案

验证 URL 是一个常见问题,因此您应该首先考虑使用可用的工具来执行此操作,而不是重新发明轮子。尽管如此,来自 wikipedia :

Unreserved

May be encoded but it is not necessary

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~

Reserved

Have to be encoded sometimes

! * ' ( ) ; : @ & = + $ , / ? % # [ ]

Further details can for example be found in RFC 3986 and http://www.w3.org/Addressing/URL/uri-spec.html.

基于此,您的模式将是 [^-\]_.~!*'();:@&=+$,/?%#[A-z0-9] .你想看看这个(排他性的)patten 是否与你的字符串中的任何字符匹配,如果是,这些可能是必须编码的特殊字符。

RegexBuddy 生成的代码:

bool hasInvalidChars = false;
try {
hasInvalidChars = Regex.IsMatch(urlToTest, @"[^-\]_.~!*'();:@&=+$,/?%#[A-z0-9]", RegexOptions.Singleline | RegexOptions.Multiline);
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}

关于c# - 有效 URL 字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22038142/

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