我需要一个匹配包含" [S]"的文本的正则表达式模式。我试过这样的事情:
^(?\\[S\\]$)$
但它没有用。 我怎样才能做到这一点?
编辑:
正则表达式的目的是将其用作客户端验证中的正则表达式:
[RegularExpression("\\[S\\]", ErrorMessage = "The field must contain '[S]'.")]
但这不起作用。因为只有当字段为" [S]"。
时才有效答案 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]*"
。