我正在使用
正则表达式:(?<!WHEN\s)EMP_ID
查询:SELECT EMP_ID, CASE WHEN EMP_ID > 115 THEN 'greater' WHEN EMP_ID < 115 THEN 'lower' END AS TEST
匹配项:1个匹配项(EMP_ID)
但如果我在此查询中的WHEN后面添加任何空格,则会显示2个匹配的'EMP_ID',这是错误的。或者,如果我在查询中使用where条件并使用此列名,则也会给予2个匹配的列名。
如何在C#中更正此正则表达式或使用其他方法解决此问题?
1条答案
按热度按时间aiqt4smr1#
您可以使用
或者,使用全字匹配:
请参阅.NET regex demo。
由于.NET正则表达式风格允许在lookbehind中使用未知长度模式,因此
(?<!WHEN\s+)
可以工作,并且使任何前面紧跟WHEN
+一个或多个空格的位置失败。