我在SQL Server 2005数据库中创建了一个CLR。它是一个简单的正则表达式用户定义函数,用于检查我传递给函数的字符串中是否存在某种模式。
下面是我在CLR中使用的.NET代码:
Return System.Text.RegularExpressions.Regex.IsMatch("Input", "pattern")
如果找到了匹配项,这将返回一个值为1的位。
我正在使用的模式是
+(Create|Alter) +(Proc|Procedure) +
我希望这能找到任何“create or alter”、“procedure or proc”字样,不论大小写。如何使表达式忽略大小写呢?
我尝试过:
/ +(Create|Alter) +(Proc|Procedure) +/i
但这并不起作用。
编辑:我在互联网上寻找并使用了各种建议。 没有一个有效或者我做错了。 如果有人能给我一个忽略大小写的模式,那将不胜感激!
答案:我想实现的是一个忽略大小写的正则表达式。Dot Net确实有可以传递参数以设置忽略大小写的方法,但它在CLR中,意味着我无法将参数传递到函数中。
实现这个功能的模式是:(?i) +(Create|Alter) +(Proc|Procedure) +