0

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

This is a {long|ugly|example} string 

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

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

现在我有了可以使用的令牌,但我想要保留有关使用哪个 char 来拆分返回的数组的每一部分的信息。

任何现有的代码可以做这样的事情吗?

4

1 回答 1

1

我倾向于对此使用正则表达式。然后您可以使用匹配组来跟踪匹配的内容。

看看这个正则表达式测试器。使用您的测试数据和这个正则表达式模式:

([^{|}]+)([{|}]?)

这有效地将字符串拆分为 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
于 2012-11-14T16:58:03.453 回答