電子メールが有効かどうかを確認する方法は?
例えば:
test@test.com
- 有効test@@.com
- 無効test@.com
- 無効
以下は、アドレス付きメール (正規表現) の特定のルールを含むテーブルを作成する例です。次に、SQL クエリ パターン (正規表現) の例を示します。これで、あなたがやりたいことができるはずです
正規表現でテーブルを作成
create table Contacts (
FirstName nvarchar(30),
LastName nvarchar(30),
EmailAddress nvarchar(30) CHECK (dbo.RegExMatch('[a-zA-Z0-9_\-]+@([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz)', EmailAddress)=1),
USPhoneNo nvarchar(30) CHECK (dbo.RegExMatch('\([1-9][0-9][0-9]\) [0-9][0-9][0-9]\-[0-9][0-9][0-9][0-9]', UsPhoneNo)=1))
INSERT INTO [talend].[dbo].[Contacts]
([FirstName]
,[LastName]
,[EmailAddress]
,[USPhoneNo])
VALUES
('Hallam'
,'Amine'
,'mhallam@talend.com’
,'0129-2090-1092')
,( 'encoremoi'
,'nimportequoi'
,'amine@zichji.org'
,'(122) 190-9090')
GO
正規表現でリクエストSQLを実行する
SELECT [FirstName]
,[LastName]
,[EmailAddress]
,[USPhoneNo]
FROM [talend].[dbo].[Contacts]
where [talend].[dbo].RegExMatch([EmailAddress],'[a-zA-Z0-9_\-]+@([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz|au)') = 1
機能コード
using System;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions;
public partial class RegExBase
{
[SqlFunction(IsDeterministic = true, IsPrecise = true)]
public static int RegExMatch( string matchString , string pattern)
{
Regex r1 = new Regex(pattern.TrimEnd(null));
if (r1.Match(matchString.TrimEnd(null)).Success == true)
{
return 1 ;
}
else
{
return 0 ;
}
}
};
詳細については、こちらのチュートリアルをご覧ください。 %2Ffile_download.php%3Ffile_id%3D4729%26type%3Dbug&ei=f8C9UKTMBNSN4gTo0IHYDg&usg=AFQjCNG-ezRtC9TdcJXuXGl4T8KX4zbUww&sig2=Fpgm5UTYOK4dpsaMfNCCyQ&cad=rja
これがお役に立てば幸いです
これを行うための新しい効率的な方法が 1 つあります。それは、SQL の .Net 機能を拡張することです。
詳細はhttp://msdn.microsoft.com/en-us/magazine/cc163473.aspxで確認してください。
正規表現一致の準備が整ったソース コードの 1 つがhttp://www.codeproject.com/Articles/42764/Regular-Expressions-in-MS-SQL-Server-2005-2008にあります。
これで、メールの単純な正規表現が魔法のように機能するはずです
数年前、私はパターン マッチングに関するプログラムを書きました– Email Validation . それがあなたを助けることを願っています。