【发布时间】:2010-10-25 05:00:48
【问题描述】:
假设我有字符串“1 AND 2 AND 3 OR 4”,并且想要创建一个字符串数组,其中包含在字符串中依次找到的所有子字符串“AND”或“OR”。
所以上面的字符串会返回一个 {"AND", "AND", "OR"} 的字符串数组。
什么是聪明的写作方式?
编辑: 使用 C# 2.0+,
string rule = "1 AND 2 AND 3 OR 4";
string pattern = "(AND|OR)";
string[] conditions = Regex.Split(rule, pattern);
给我 {"1", "AND", "2", "AND", "3", "OR", "4"},这不是我想要的。我怎样才能将其简化为 AND 和 OR?
【问题讨论】:
-
我可以看到你想要做什么,但我不认为
Split方法最适合你想要的。请参阅拆分正在分隔 AND 和 OR 处的输入,从而产生数字(并且只有括号的 AND/ORs coz) - 这不是您想要的。您需要 AND 和 OR。我认为精心设计的正则表达式模式可以返回多个匹配项,因此仅捕获 AND 和 OR。 -
如果这个要求你能解释一下目的吗?它可能有助于设计更合适的正则表达式。