簡體   English   中英

C# 使用正則表達式拆分字符串

[英]C# Split string using regex expression

輸入String input = "{True,True,False},{False,True,True},{False,True,True}"

預期 output : String[] output = new String[]("True,True,False", "False,True,True", "False,True,True");

我正在嘗試使用Regex.Split ,但該模式不成功。 有什么提示嗎?

這是我的版本:

using System;
using System.Linq;
using System.Text.RegularExpressions;

class Program
{
    public static void Main(string[] args)
    {
        String input = "{True,True,False},{False,True,True},{False,True,True}";

        var pattern = "{(.*?)}";
        var matches = Regex.Matches(input, pattern);

        var output2 = matches
                 .Select(m => m.Groups[1].ToString())
                 .ToList();

        foreach (var o in output2) Console.WriteLine(o);
    }
}

Output

True,True,False
False,True,True
False,True,True

你可以試試:

var result = input
  // Remove sorrounding { and }     
  .Trim(new char[] { '{', '}' })
  // Split by "},{"
  .Split(new string[] { "},{" }, StringSplitOptions.RemoveEmptyEntries);

您可以分別使用.TrimStart().TrimEnd()修剪第一個和最后一個{ } ,然后使用以下模式應用 RegEx

    string str = "{True,True,False},{False,True,True},{False,True,True}".TrimStart('{').TrimEnd('}');
    var result = Regex.Split(str, @"},{"); // result is an array of string.
    Console.WriteLine(string.Join(" ", result));

Output

True,True,False False,True,True False,True,True

.Net 小提琴

您可以使用:

string input = "{True,True,False},{False,True,True},{False,True,True}";

var pattern = @"{([A-Za-z,].+?)}";
var yourArray = Regex.Matches(input, pattern);

var Result= yourArray 
         .Select(m => m.Groups[1].ToString())
         .ToList();

foreach(var r in Result) {
   Console.WriteLine(r);
}

您的 output:

True,True,False
False,True,True
False,True,True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM