用于在 c# 中分隔括号和运算符的正则表达式
Regex for seperate to parentheses and operators in c#
我的部分项目必须使用正则表达式。我想从给定的输入中分离出 AND、OR 运算符。但我不需要括号中的运算符。
示例输入:C1 OR [C2 AND C3] AND C4 OR C5 AND [C6 AND C7 OR C8] OR C9
输出:或与或与或
其他示例输入:C1 AND C2 AND [C3 OR C4] AND C5
输出:AND AND AND
如果你没有嵌套括号,你可以这样做:
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace Example
{
class Program
{
static void Main(string[] args)
{
var input = "1 OR[C2 AND C3] AND C4 OR C5 AND[C6 AND C7 OR C8] OR C9";
var filtered = Regex.Replace(input, "\[.*?\]", string.Empty);
var result = filtered.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Where(element => element == "OR" || element == "AND");
Console.WriteLine(string.Join(", ", result));
Console.ReadKey();
}
}
}
我的部分项目必须使用正则表达式。我想从给定的输入中分离出 AND、OR 运算符。但我不需要括号中的运算符。
示例输入:C1 OR [C2 AND C3] AND C4 OR C5 AND [C6 AND C7 OR C8] OR C9
输出:或与或与或
其他示例输入:C1 AND C2 AND [C3 OR C4] AND C5
输出:AND AND AND
如果你没有嵌套括号,你可以这样做:
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace Example
{
class Program
{
static void Main(string[] args)
{
var input = "1 OR[C2 AND C3] AND C4 OR C5 AND[C6 AND C7 OR C8] OR C9";
var filtered = Regex.Replace(input, "\[.*?\]", string.Empty);
var result = filtered.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Where(element => element == "OR" || element == "AND");
Console.WriteLine(string.Join(", ", result));
Console.ReadKey();
}
}
}