我想用多个字符拆分字符串来拆分。例如,考虑旋转文本格式:
This is a {long|ugly|example} string
我想解析这个字符串并将其拆分为“{”,“|”和“}”字符
myString.Split('|','{','}')
现在我有令牌玩,但我想要保留有关哪个char用于拆分返回的每个数组的信息。
任何可以执行此类操作的现有代码?
答案 0 :(得分:1)
我倾向于在此使用正则表达式。然后,您可以使用匹配组来跟踪匹配的内容。
结帐this regular expression tester。使用您的测试数据和这个正则表达式模式:
([^{|}]+)([{|}]?)
这有效地将字符串拆分为5个匹配项。每个匹配包含2个组:拆分字符串和它拆分的字符。
运行此代码的代码如下:
MatchCollection m = Regex.Matches("This is a {long|ugly|example} string ",@"([^{|}]+)([{|}]?)");
现在,匹配集m将包含每个匹配字符串的Match对象,该字符串又包含2个组,字符串和拆分的字符。
m[0].Groups[0].Value; // 1st split string
m[0].Groups[1].Value; // 1st split character