2012-04-17 7 views
0

私は正規表現

ドメイン名(例:。@ google.com、@ xyz.co.uk、@ xyz.eduなど)のcsvファイルを検証しようとしている私には、次を使用しています正規表現:

Regex(@"@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$", RegexOptions.Compiled); 

上記の改善の余地はありますか?

+1

http://stackoverflow.com/questions/399932/can-i-improve-this-regex-check-for-valid-domain-names – Ina

+0

これはまともな防衛線ですが、愚かな*意図的に*。リンクされた質問の受け入れられた答えを見てください、それははるかに良いアプローチです。 – dasblinkenlight

+0

私は[電子メールの検証](http://www.regular-expressions.info/email.html)を1回試してみました。ご覧のとおり、多くの異なる正規表現があります(特に '@'記号の後に)あなたは使うことができます。 –

答えて

1

専用sitesに慣れてください。

一定のメンテナンスを必要としないソリューションを選択してください。あなた自身の正規表現は、あなたが完全な攻撃を期待していないいくつかのアプリケーションにはかなりよく見えます。

@lnaがコメントにリンクしている回答も参照してください。

+0

OK。しかし、上記の私の正規表現では... [email protected]をTrueとして返すことができます...間違っています... – GoldenUser

+1

これはアンカーされていないためです。入力文字列全体が部分文字列だけでなく、一致するようにするには、最初に '^'を、最後に '$'を追加します。 –