如何在.NET中使用正则表达式从字符串中提取子字符串
本文关键字:字符串 提取 正则表达式 NET | 更新日期: 2023-09-27 18:26:37
我想使用正则表达式从字符串中提取子字符串,即下面的输入/输出列表显示了我真正想要的内容。我需要从字符串中提取dept过滤条件。这里单词[dept]是常量。因此,在这种情况下,什么样的正则表达式对提取子字符串是有用的
Input------------------------------------------------Output
Some conditions And [dept]=IT [dept]=IT
Some conditions And [dept]=IT Or [dept]=Account [dept]=IT Or [dept]=Account
Some conditions And [dept] IN ('IT','Account') [dept] IN ('IT','Account')
[dept]=IT And some conditions [dept]=IT
[dept]=IT Or [dept]=Account And some conditions [dept]=IT Or [dept]=Account
[dept] IN ('IT','Account') And some conditions [dept] IN ('IT','Account')
这可能接近之后的情况
('[dept']='w+)( (Or)|(And))?|('[dept'] IN '(.+?'))
它与您的示例输入相匹配,如下所示,分组在()中。
([dept]=IT)
([dept]=IT Or) ([dept]=Account)
([dept] IN ('IT','Account'))
在您的脚本中,您可以加入每行上的组,即加入([dept]=IT Or) ([dept]=Account)
但是,如果像注释中建议的那样,您确实在解析SQL,那么有一些SQL解析器可以让您准确地访问查询WHERE表达式。
'[dept'].*(?='s+'bAnd'b)|'[dept'].*(?=$)
试试这个。请参阅演示。
http://regex101.com/r/dZ1vT6/41