1

我试图掌握正则表达式的概念,但似乎遗漏了一些东西。

我想确保有人在字段中输入以 .wav 结尾的字符串。应该是一个非常简单的正则表达式。

我试过这个...... [RegularExpression(@"$.wav")] 但似乎不正确。任何帮助表示赞赏。谢谢!

4

1 回答 1

1

$是字符串结尾的锚点,所以$.wav没有任何意义。字符串结尾后不能有任何字符。此外,.正则表达式具有特殊含义(仅表示“任何字符”),因此您需要对其进行转义。

尝试写作

\.wav$

如果这不起作用,请尝试

.*\.wav$

(这取决于RegularExpression属性是要匹配整个字符串,还是只匹配其中的一部分。.*意思是“任何字符,0 次或更多次”)

您应该考虑的另一件事是如何处理字段中的额外空白。用户有在输入中添加额外空白的可怕习惯——这就是为什么各种.Trim()功能如此重要的原因。在这里,RegularExpressionAttribute可能会在您修剪输入之前进行评估,因此您可能想要编写以下代码:

.*\.wav[\s]*$

[\s]*部分表示“任何空白字符(制表符、空格、换行符等)0 次或更多次”。

您应该阅读有关正则表达式的教程。像这样的简单问题并不难理解。当我学习时,我发现这个网站非常方便:http ://www.regular-expressions.info/

于 2012-12-12T20:24:58.240 回答