ako*_*sch 6 regex mysql sql 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.]]'
Run Code Online (Sandbox Code Playgroud)
不幸的是,mssql 中的正则表达式支持很糟糕,最接近的运算符是“like”,它大大错过了正则表达式的功能。您必须考虑将正则表达式分解为多个类似的语句,并可能进行一些脏字符串操作来模拟您想要实现的目标。
例如,虽然我们可以用 [ ] 复制 [[:blank:]] (读取 [ Space Tab ]),但我们不能强制匹配零个或多个它们,因此我们必须将它们从表达式中删除,但这将匹配 ' ASD ' 因此我们需要测试未修改的字符串中是否存在 ASD。
我认为以下内容将取代您的正则表达式,但它很快就拼凑在一起,因此请仔细测试。
replace(replace(somefield,' ',''),' ','') in ('ASD','|ASD','|ASD|','ASD|')
and
somefield like '%ASD%'
Run Code Online (Sandbox Code Playgroud)
同样,在我的替换语句中,一个是空格,另一个是制表符。