需要一个文件路径验证正则表达式的帮助

3

我正在使用Visual Studio中的RegularExpressionValidator,但是我很难为我的需求创建正确的正则表达式。这是我想要的:

输入可以包含任何字符,除了<>:"/|?*。此外,输入不能连续包含两个反斜杠。

因此,your\mom 可以,但 your\\momyour*mom 都不行。

目前最接近的一个正则表达式是:

^(?=.*[^<>:"/|?*])(?:[^\\]+|\\(?:$|[^\\])).{0,100}$

但是它不起作用。


必须使用正则表达式吗?使用子字符串函数来检查输入中是否存在<>:“/ |?*的子字符串和\不是输入的子字符串怎么样? - Jong Bor Lee
嗯,我想我本可以使用自定义验证器并编写代码来实现这一点,但下面的解决方案很好用,所以我会认为它是好的。 - user761605
1个回答

1
^(?!.*\\\\)[^<>:"/|?*]*$

应该这样做。

(?!.*\\\\) 断言字符串中没有两个连续的反斜杠。

[^<>:"/|?*]* 匹配除字符类中的字符外的任意数量字符。

也就是说,除非你在谈论 Visual Studio(IDE 环境本身)的正则表达式特征,它具有极不标准的正则表达式风格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接