【问题标题】:Using a RegEx via C# to split by keywords except within quotes通过 C# 使用 RegEx 按关键字拆分,引号内除外
【发布时间】:2014-12-16 01:36:45
【问题描述】:

如果我想按关键字AND 进行拆分,那么与.NET 方法Regex.Split 一起使用的适当正则表达式是什么,如下所示:

A1 = B2 AND A2 = 'M AND M' AND A3 NOT IN ( 'E1' , 'E2' )

这是我想要的结果:

A1 = B2
A2 = 'M AND M'
A3 NOT IN ( 'E1' , 'E2' )

【问题讨论】:

    标签: c# .net regex split


    【解决方案1】:

    试试这个:

    string str = "A1 = B2 AND A2 = 'M AND M' AND A3 NOT IN ( 'E1' , 'E2' )";
    Regex regex = new Regex(@"(?<!'\w+)\sAND\s(?!\w+')");
    string[] arr = regex.Split(str);
    

    Demo

    分解它,我们从我们的术语开始拆分为“ AND ”。然后我们使用否定的lookbehind来确保它不是以'开头的模式的一部分,后跟一个或多个单词。最后,我们使用否定前瞻来确保它后面没有一个或多个以 ' 结尾的单词的模式。

    【讨论】:

    • 像魅力一样工作。谢谢。
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2020-03-03
    • 2012-06-07
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多