仅在花括号外的空格上分割字符串
我是正则表达式的新手,我需要一些帮助。 我读了一些类似于这个问题的主题,但我无法弄清楚如何解决它。
我需要在不在一对花括号内的每个空格上分割一个字符串。 花括号外的连续空格应视为单个空格:
{ TEST test } test { test test} {test test } { 123 } test test
结果:
{ TEST test } test { test test} {test test } { 123 } test test
{[^}]+}|S+
这匹配由花括号括起来的任何字符的运行,或者一系列非空格字符。 从你的字符串中抓取所有匹配项应该可以为你提供你想要的东西。
这正是你想要的……
string Source = "{ TEST test } test { test test} {test test } { 123 } test test"; List Result = new List (); StringBuilder Temp = new StringBuilder(); bool inBracket = false; foreach (char c in Source) { switch (c) { case (char)32: //Space if (!inBracket) { Result.Add(Temp.ToString()); Temp = new StringBuilder(); } break; case (char)123: //{ inBracket = true; break; case (char)125: //} inBracket = false; break; } Temp.Append(c); } if (Temp.Length > 0) Result.Add(Temp.ToString());
我解决了我的问题:
StringCollection information = new StringCollection(); foreach (Match match in Regex.Matches(string, @"{[^}]+}|S+")) { information.Add(match.Value); }
谢谢你的帮助!
上述就是C#学习教程:仅在花括号外的空格上分割字符串分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/936582.html