我在 SQL Server 2005 数据库中创建了一个 CLR。这是一个简单的正则表达式用户定义函数,它将检查我传递给函数的字符串中是否存在模式。

我在CLR中使用的点网代码如下所示:

Return System.Text.RegularExpressions.Regex.IsMatch("Input", "pattern")

如果找到匹配项,则返回位值 1。

我使用的模式是
 +(Create|Alter) +(Proc|Procedure) +

我想要做的是找到任何“创建或更改”“过程或过程”的情况,而不管情况如何。如何让表达式忽略大小写?

我试过了
/ +(Create|Alter) +(Proc|Procedure) +/i

但这不起作用。

编辑:我在互联网上环顾四周并使用了各种建议。这些都没有奏效,或者我做错了。如果有人能给我一个可以忽略这种情况的模式,我将不胜感激!

回答:
我试图实现的是一个忽略大小写的正则表达式。 Dot Net 确实有可以传入设置忽略大小写的参数,但是它在 CLR 中意味着我无法将参数传递给函数。

实现这一点的模式是: (?i) +(Create|Alter) +(Proc|Procedure) +

最佳答案

您可以使用内联“不区分大小写”修饰符 (?i) :

(?i) +(Create|Alter) +(Proc|Procedure) +

关于.net - 使用正则表达式忽略大小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1543602/

10-12 14:17