簡體   English   中英

如何在每個括號上拆分字符串並將所有文本保存到c#中的數組中

[英]how to split a string on every parenthese and keep all text into an array in c#

我正在嘗試將每個括號上的字符串拆分成一個數組並將所有文本保存在C#中,將所有內容都放在括號中。

示例:“ hmmmmmmmm(asdfhqwe)asasd

應該成為:“ hmmmmmmmm ”,“ (asdfhqwe) ”和“ asasd ”。

我目前的設置只能將所有內容都放在括號內並丟棄其余部分。

var output = input.Split('(', ')').Where((item, index) => index % 2 != 0).ToList();

我將如何繼續做這樣的事情(無視我目前的代碼)?

使用正向前瞻和后視以及可選空間的regrx拆分; 然后過濾掉空字符串。

var tokens = Regex
    .Split(str, @"(?<=[)])\s*|\s*(?=[(])")
    .Where(s => s != string.Empty)
    .ToList();

演示。

試試這個:

string[] subString = myString.Split(new char[] { '(', ')' });

Oky所以我不知道真正的字符串在你的應用程序中會是什么樣子,但根據提供的字符串,這將是我的解決方案:

string sample = "hmmmmmmmm (asdfhqwe)asasd";
var result = sample.Replace("(", ",(").Replace(")", "),").Split(',');

所以我用逗號替換了split的位置,但是你可以使用你的字符串中可能永遠不會出現的任何其他字符,比如'〜'也可以。

但是不知道所有必需的功能,這將適用於上述場景。

暫無
暫無

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

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