1. ホーム
  2. sql-server

[解決済み] SQL ServerでRegExを使用する

2022-10-30 03:28:10

質問

以下のRegExの設定/パラメータに基づいて、RegExを使用してテキストを置換/エンコードする方法を探しています。

RegEx.IgnoreCase = True     
RegEx.Global = True     
RegEx.Pattern = "[^a-z\d\s.]+"   

RegExに関するいくつかの例を見ましたが、SQL Serverで同じように適用する方法について混乱しています。何か提案があれば助かります。ありがとうございます。

どのように解決するのですか?

マネージドコードとやり取りする必要はありません。 LIKE :

CREATE TABLE #Sample(Field varchar(50), Result varchar(50))
GO
INSERT INTO #Sample (Field, Result) VALUES ('ABC123 ', 'Do not match')
INSERT INTO #Sample (Field, Result) VALUES ('ABC123.', 'Do not match')
INSERT INTO #Sample (Field, Result) VALUES ('ABC123&', 'Match')
SELECT * FROM #Sample WHERE Field LIKE '%[^a-z0-9 .]%'
GO
DROP TABLE #Sample

式の末尾が + で終わるので '%[^a-z0-9 .][^a-z0-9 .]%'

EDIT :

はっきり言って、SQL Serverはマネージドコードのない正規表現には対応していません。状況によっては LIKE 演算子はオプションになりえますが、正規表現が提供する柔軟性に欠けています。