Asp.net RegularExpressionValidator为有效输入返回false

Asp.net RegularExpressionValidator为有效输入返回false,asp.net,regex,validation,c#-4.0,Asp.net,Regex,Validation,C# 4.0,我想验证文本框中的输入,因此它必须在方括号内包含六个(可选七个)字符。这可以出现在字符串中的任何位置,而不是整个字符串本身。有效输入示例:Hello World[XX1111] Regex r = new Regex(rfvTest.ValidationExpression); bool match = r.IsMatch(txtTest.Text); 我提出了以下正则表达式:\[….?\] 但是,此表达式似乎不适用于RegularExpress

我想验证文本框中的输入,因此它必须在方括号内包含六个(可选七个)字符。这可以出现在字符串中的任何位置,而不是整个字符串本身。有效输入示例:
Hello World[XX1111]

            Regex r = new Regex(rfvTest.ValidationExpression);
            bool match = r.IsMatch(txtTest.Text);
我提出了以下正则表达式:
\[….?\]

但是,此表达式似乎不适用于
RegularExpressionValidator

<asp:TextBox ID="txtTest" runat="server" />
<asp:RegularExpressionValidator ID="rfvTest" runat="server" ControlToValidate="txtTest" 
    ValidationExpression="\[.......?\]" ErrorMessage="Enter in the right format...">Enter in the right format</asp:RegularExpressionValidator>
<asp:Button ID="btnTest" runat="server" Text="test" />

那么:上面是什么。我相信表达式本身是正确的,它使用
Regex
类按预期进行验证,但是
RegularExpressionValidator
将不会验证输入。

问题似乎是,不幸的是,此控件将输入锚的开头和结尾添加到您提交的正则表达式中(并且没有文件证明它这样做了)


这意味着您必须在正则表达式的两边都用
*
环绕。这可能被视为一个bug…

如果您只输入正则表达式匹配的文本(即,
[xxxxxxx]
)?我想您需要在XML文件中对反斜杠进行双重转义。那么..
\[.{6,}\]
?@fge是-这是有效的!那么它会自动假定单词边界吗?我猜答案是前后的一个
*
,然后…@bgs264这是一个疯狂的猜测…它很糟糕,真的(而不是单词边界,不-自动锚定在开头和结尾)