Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Regex检查文本是否包含两个单词中的一个和前面的数字_C#_Sql_Sql Server_Regex_String - Fatal编程技术网

C# Regex检查文本是否包含两个单词中的一个和前面的数字

C# Regex检查文本是否包含两个单词中的一个和前面的数字,c#,sql,sql-server,regex,string,C#,Sql,Sql Server,Regex,String,现在我需要一些正则表达式专业人士的帮助,因为如果可能的话,我通常会尽量避开他们。我需要在sql server查询中使用它,在该查询中,除了使用正则表达式之外,我看不到任何其他选项 此文本必须匹配: ####:;Approval:;EC 33/37:1- goodwill validation 因为它包含这些子字符串之一 酪蛋白 友善 在它之前必须有1-。我可以使用以下sql查询: WHERE d.REMARKS LIKE '%1-%CASEID%' OR d.REMARKS LIKE '%1

现在我需要一些正则表达式专业人士的帮助,因为如果可能的话,我通常会尽量避开他们。我需要在sql server查询中使用它,在该查询中,除了使用正则表达式之外,我看不到任何其他选项

此文本必须匹配:

####:;Approval:;EC 33/37:1-  goodwill validation
因为它包含这些子字符串之一

酪蛋白 友善 在它之前必须有1-。我可以使用以下sql查询:

WHERE d.REMARKS LIKE '%1-%CASEID%' OR d.REMARKS LIKE '%1-%Goodwill%'
但问题是,如果在1之前有另一个数字使其成为不同的数字,那么它也会匹配。所以在1之前可以有任何字母,但不能有数字

这是我所没有的:


C标记,因为我在正则表达式中使用C。

我认为您可以使用普通:


这有一个缺点,假设1不是第一个字符。

我认为您可以使用普通:


这有一个缺点,就是假设1不是第一个字符。

好吧,我想你可以试试这个正则表达式:?I.*\D1-.*?:CASEID | goodness.*.\D将确保1前面没有数字。我想你只需要使正则表达式搜索不区分大小写,不确定如何使用sqlsrv执行此操作。关于字符串的开头:可以尝试?i?:.*\D | ^1-.*?:CASEID | goodness.*。参见@stribizev:也谢谢你,这很有效。我需要一些正则表达式练习,但似乎我可以用纯sql解决它。嗯,我想你可以试试这个正则表达式:?I.*\D1-.*?:CASEID | goodness.*.\D将确保1之前没有数字。我想你只需要使正则表达式搜索不区分大小写,不确定如何使用sqlsrv执行此操作。关于字符串的开头:可以尝试?i?:.*\D | ^1-.*?:CASEID | goodness.*。参见@stribizev:也谢谢你,这很有效。我需要一些正则表达式练习,但似乎我可以用纯sql解决它。哇,我没想到,谢谢,它非常好。而且它比正则表达式更有效。但也许你也可以提供一个正则表达式的方法,否则对未来的读者就没什么帮助了。干得好,科比。@TimSchmelter-谢谢!您的正则表达式是正确的,只是缺少/i标志:。在C中,这是RegexOptions.IgnoreCase,还是?我喜欢上面提到的Stribizev。@Kobi:是的,只是字符串开头不匹配。我想在这种情况下这不是问题。我只是不知道LIKE运算符可以使用哪些通配符。看起来像regex,但不是那样:哇,我没想到,谢谢,非常好。而且它比正则表达式更有效。但也许你也可以提供一个正则表达式的方法,否则对未来的读者就没什么帮助了。干得好,科比。@TimSchmelter-谢谢!您的正则表达式是正确的,只是缺少/i标志:。在C中,这是RegexOptions.IgnoreCase,还是?我喜欢上面提到的Stribizev。@Kobi:是的,只是字符串开头不匹配。我想在这种情况下这不是问题。我只是不知道LIKE运算符可以使用哪些通配符。看起来像正则表达式,但不完全是:
.*[^0-9]1-.*(CASEID|Goodwill).*
LIKE '%[^0-9]1-%CASEID%'