簡體   English   中英

MySQL REGEXP到SQL Server

[英]MySQL REGEXP to SQL Server

以下MySQL表達式的SQL Server等價物是什么?

... WHERE somefield REGEXP '^[[:blank:]]*ASD[[:blank:]]*$|^[[:blank:]]*ASD[[:blank:]]*[[.vertical-line.]]|[[.vertical-line.]][[:blank:]]*ASD[[:blank:]]*$|[[.vertical-line.]][[:blank:]]*ASD[[:blank:]]*[[.vertical-line.]]'

不幸的是,mssql中的正則表達式支持是可怕的,最接近的運算符是“喜歡”,它錯過了一英里的正則表達式的功能。 您必須將正則表達式分解為多個類似的語句,並且可能會執行一些臟字符串操作來模擬您嘗試實現的內容。

例如,雖然我們可以用[](讀取[Space Tab])復制[[:blank:]],但是我們不能強制匹配它們中的零個或多個,所以我們必須將它們從表達式中刪除但是這將匹配' ASD'所以我們需要在未修改的字符串中測試ASD的存在。

我認為以下內容將取代你的正則表達式,但它很快被拼湊在一起,所以仔細測試它。

replace(replace(somefield,' ',''),' ','') in ('ASD','|ASD','|ASD|','ASD|')
and
somefield like '%ASD%'

在我的替換語句中,一個是另一個選項卡的空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM