我有一个正则表达式但不能按我的意愿工作。
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'
答案 0 :(得分:0)
根据建议,我发布了我的评论:
通过Split拆分where子句会更容易。您的分隔符可以是&&
,||
,AND
,OR
,whatever
。这是一个例子:
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
来发挥作用。