.net URL的正则表达式数据批注不起作用

.net URL的正则表达式数据批注不起作用,.net,wpf,regex,data-annotations,.net,Wpf,Regex,Data Annotations,我正试图为我正在使用的WPF MVVM应用程序使用的正则表达式数据注释是随意的,似乎不能与许多正则表达式一起使用 这一个有效(不是url,而是一些简单的东西): 这个,以及我尝试过的每个其他url验证正则表达式,都不会: [RegularExpression(@"/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/")] 是否有人有一个可用于数据批注和WPF的工作URL正则表达式的示例?删除起始斜杠和结束斜杠,.net

我正试图为我正在使用的WPF MVVM应用程序使用的正则表达式数据注释是随意的,似乎不能与许多正则表达式一起使用

这一个有效(不是url,而是一些简单的东西):

这个,以及我尝试过的每个其他url验证正则表达式,都不会:

[RegularExpression(@"/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/")]

是否有人有一个可用于数据批注和WPF的工作URL正则表达式的示例?

删除起始斜杠和结束斜杠,.net不需要正则表达式分隔符。这里也不需要锚,模式自动匹配整个输入

[RegularExpression(@"(https?://)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*/?")]

应该会更好。也消除了一些不必要的逃逸。我还没有检查模式本身的正确性

您可以从本文中找到有关验证URL的更多信息

以下是他们的建议之一,适用于各种URL:

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


正如@stema所说,如果您对此有任何问题,请显示您试图验证的任何URL。

谢谢。该模式不起作用,删除前导斜杠和后斜杠以及锚定对其他示例没有帮助。我将改写这个问题,看看是否有人有一个可用于数据注释的正则表达式。谢谢@Sheridan。问题不是找到URL正则表达式,这里有很多非常好的资源。问题是正则表达式数据注释似乎不能正常工作,即使对于非常简单的正则表达式(如仅数字)。我不得不继续,所以我将看看是否有人可以提供完整验证属性的示例,包括regex,然后稍后尝试进一步测试。
[RegularExpression(@"(https?://)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*/?")]