拆分令牌信息

时间:2012-11-14 16:54:29

标签: c# string parsing split

我想用多个字符拆分字符串来拆分。例如,考虑旋转文本格式:

This is a {long|ugly|example} string 

我想解析这个字符串并将其拆分为“{”,“|”和“}”字符

myString.Split('|','{','}')

现在我有令牌玩,但我想要保留有关哪个char用于拆分返回的每个数组的信息。

任何可以执行此类操作的现有代码?

1 个答案:

答案 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