繁体   English   中英

如何在.NET中使用正则表达式从字符串中提取子字符串

[英]How i can extract substring from string using regular expression in .NET

我想使用正则表达式从字符串中提取子字符串。 以下输入/输出列表显示了我真正想要的。 我需要从字符串中提取部过滤条件。 这里的[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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM