0

VB.NETには次の正規表現があります。これは問題なく機能します。

(Istr_)*(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

ただし、「Istr_」の部分では大文字と小文字を区別せず、式の残りの部分では大文字と小文字を区別したままにします。次のようなMSDNドキュメントに従って、「?i:」を追加するだけでそれを試みました。

(?i:Istr_)*(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

RegularExpressionValidatorしかし、これは私の形を壊します。

*これと何か関係がありますか?パターンに参加するのに適切なキャラクターかどうかはわかりません。最初のパターンを、2番目のパターンの大文字と小文字を区別しないオプションのプレフィックスにします。

さらに、まだ方法がわからないスペースを許可したくありません。

ありがとう。:)

4

1 に答える 1

4

ここでの説明を参照してください:正規表現の一部を大文字と小文字を区別しないようにすることはできますか?

または、あまり美しくないソリューションを作成しますが、機能します。

([Ii][Ss][Tt][Rr]_)?(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

*を?に変更しました。これの意味は:

?: the prefix iStR_ is optional
*: the prefix IStr_ is optional but can occur multiple times
于 2012-08-29T19:36:55.860 に答える