正则表达式模式拆分where子句

时间:2016-04-12 11:36:16

标签: c# regex

我有一个正则表达式但不能按我的意愿工作。

Regex re = new Regex(@"\w[\w\d]* \s*[<>!=like]{1,4}\s* ( \?|\w[\w\d]*|(\w[\w\d]*)*((?<PR>\()|(?<-PR>\))|[^()])+ )", RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);

MatchCollection mc = re.Matches("per_name != 'John' && per_name != 'Peter'");

foreach (Match m in mc) {
    Console.WriteLine(m.Value);        
}

我希望我的代码输出为:

per_name != 'John'
per_name != 'Peter'

1 个答案:

答案 0 :(得分:0)

根据建议,我发布了我的评论:

通过Split拆分where子句会更容易。您的分隔符可以是&&||ANDORwhatever。这是一个例子:

string whereClauseText = "per_name != 'John' && per_name != 'Peter'";
string[] operators =  new string[] {'&&','||','AND','OR'};

string[] clauses = whereClauseText.Split(operators, StringSplitOptions.None);
foreach (string clause in clauses)
{
    Console.WriteLine(clause);
}

你还应该看看String.Split Method,这样你就可以使用StringSplitOptions来发挥作用。

相关问题