0

すでに回答済みの場合は申し訳ありませんが、ここで見つかりませんでした。私はその可能性を知っていますが、正規表現についての知識は非常に限られています。プロジェクトがあり、値の最初の2文字が、、、ASP.NETで始まるかどうかを確認したいのですが、始まる場合は検証の失敗を引き起こします。GYBTJE

現在、RegularExpressionValidator内にあるのは次のとおりです。

/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/

どんな助けでも大歓迎です。

ありがとうジョン

4

4 に答える 4

0

これでうまくいくはずです

string strRegex = @"/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/";

Regex re = new Regex(strRegex);
if (re.IsMatch(inputString))
    return (true);
else
    return (false);
于 2012-06-29T12:11:11.970 に答える
0

これ[]は範囲であり、文字が表示される順序について規定していないことに注意してください。そう:

[GY]{2}は、目的の 'GY' だけでなく、'GG' または 'YY' にも一致します。これを試して:

/^(GY|BT|JE)/
于 2012-06-29T12:11:59.097 に答える
0

簡単なタスク - 正規表現^(GY|BT|JE)または^(?:GY|BT|JE)

<script  runat="server">
  sub submit(sender As Object, e As EventArgs) 
    if Page.IsValid then 
      lbl.Text="OK"
    else 
      lbl.Text="NOT OK"
    end if
  end sub
</script>

<!DOCTYPE html>
<html>
  <body>
    <form runat="server">Enter text here:
      <asp:TextBox id="txtbox1" runat="server" />
      <br /><br />
      <asp:Button text="Submit" OnClick="submit" runat="server" />
      <br /><br />
      <asp:Label id="lbl" runat="server" />
      <br />
      <asp:RegularExpressionValidator 
        ControlToValidate="txtbox1"
        ValidationExpression="^(GY|BT|JE)"
        EnableClientScript="false"
        ErrorMessage="Error"
        runat="server" />
    </form>
  </body>
</html>
于 2012-06-29T12:12:04.747 に答える
0

正しく理解しているかどうかはわかりませんが、あなたの表現は次のようになると思います。

/^(GY|BT|JE)/

これは、GY、BT、または JE で始まるすべての値に一致します。

逆に、BY、BT、または JE で始まらないすべての文字列を許可する場合は、次のようになります。

/^(?<!(GY|BT|JE)).*/
于 2012-06-29T12:18:49.213 に答える