RegularExpressionAttribute的正则表达式必须包含" [S]"文本

时间:2016-05-13 09:54:44

标签: c# regex asp.net-mvc

我需要一个匹配包含" [S]"的文本的正则表达式模式。我试过这样的事情:

^(?\\[S\\]$)$

但它没有用。 我怎样才能做到这一点?

编辑:

正则表达式的目的是将其用作客户端验证中的正则表达式:

[RegularExpression("\\[S\\]", ErrorMessage = "The field must contain '[S]'.")]

但这不起作用。因为只有当字段为" [S]"。

时才有效

1 个答案:

答案 0 :(得分:11)

  

当需要文本“[S]”时,我需要一个与文本匹配的正则表达式。

为什么要使用正则表达式检查文字?使用

if (str.Contains("[S]")) { ... }

如果您需要它作为正则表达式的一部分,请使用

if (Regex.IsMatch(s, @"\[S\]")) ...

<强>更新

我注意到您要匹配包含 [S] 的字段RegularExpressionAttribute RegularExpressionAttribute 需要完整的字符串匹配

因此,你需要

[RegularExpression(".*\\[S].*", ErrorMessage = "The field must contain '[S]'.")]

请注意,您不必在字符类之外转义],它将被视为文字。 .*将匹配除换行符之外的零个或多个字符。如果您还需要匹配换行符,则可以使用"(?s).*\\[S].*"@"[\s\S]*\[S][\s\S]*"