1

asp.netの電子メールテストボックスに次の正規表現があります。

([a-zA-Z0-9_\-\.]+)\@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))

この正規表現は、

xxx@base.co.uk
xxx@base.com
xxx@group.com

それは機能していません:

xxx@arg.co.uk
xxx@arggroup.com

私を助けてください

4

3 に答える 3

10

これ:

[a-zA-Z0-9_-.]

アンダースコアからドットまでの偽の範囲が含まれています。次のような「アンダースコア、ダッシュ、またはドット」を意味しましたか:

[a-zA-Z0-9_\-.]

? それを修正すると、うまくいきます。

\.また、アドレスではなく使用する必要があります。ドットは任意の文字に一致するため、パターン.と一致します。baseXcom(s 内のドットにはバックスラッシュは必要ないことに注意してください[]。)

完全に修正された式:

@"([a-zA-Z0-9_\-.]+)@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))"

@""バックスラッシュをバックスラッシュする必要を避けるために使用していることに注意してください。)

于 2009-07-10T12:22:37.143 に答える
6

正確な問題はわかりませんでしたが、ここで重要なポイントを見逃したり見落としたりしました。:-)

'.'正規表現のワイルドカードであり、何にでも一致します。

合わせる '。' 使用する

\.

これを試してみましょう

([a-zA-Z0-9_\-.]+)@(base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com)
于 2009-07-10T12:20:49.967 に答える
0

ここで正規表現テスターを使用すると、おそらく役に立ちます。ただし、私が見る限り、正規表現にエラーがあり、どの例でも機能しないはずです。グループは次のようにする必要があります。

[-a-zA-Z0-9_.]

その修正により、すべての例で機能します。との-間に がある_.、範囲を構築しようとしますが、ASCII 値の順序が間違っています。

また、最後の部分で使用されるドットは、base\.comではなくとしてエスケープする必要がありますbase.com

于 2009-07-10T12:26:20.373 に答える