Regex用于分隔到c#中的括号和运算符

本文关键字:运算符 用于 分隔 Regex | 更新日期: 2023-09-27 17:57:47

我必须在项目的一部分中使用regex。我想把AND,OR运算符从给定的输入中分离出来。但我不需要位于括号中的运算符。

示例输入:C1 OR[C2 AND C3]AND C4 OR C5 AND[C6 AND C7 OR C8]OR C9

输出:OR AND OR AND OR

其他示例输入:C1 AND C2 AND[C3 OR C4]AND C5

输出:与"与"

Regex用于分隔到c#中的括号和运算符

如果你没有嵌套的Paranthes,你可以这样做:

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();
        }
    }
}