以下は、アドレス付きメール (正規表現) の特定のルールを含むテーブルを作成する例です。次に、SQL クエリ パターン (正規表現) の例を示します。これで、やりたいことができるはずです
正規表現でテーブルを作成
create table Contacts (FirstName nvarchar(30),LastName nvarchar(30),EmailAddress nvarchar(30) CHECK (dbo.RegExMatch('[a-zA-Z0-9_\-][email protected] ([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', '[email protected] ','0129-2090-1092'),( 'encoremoi','nimportequoi',' [email protected] ','(122) 190-9090')GO
プレ>正規表現でリクエスト SQL を実行
SELECT [FirstName],[LastName],[EmailAddress],[USPhoneNo]FROM [talend].[dbo].[Contacts]where [talend].[dbo].RegExMatch([EmailAddress],' [a-zA-Z0-9_\-][email protected] ([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;}}};コード> プレ>