如何在分割字符串后打印分隔符

时间:2013-01-14 16:18:06

标签: c# javascript

  

可能重复:
  How do I split a string by strings and include the delimiters using .NET?

我有以下代码:

string Test="abc * (xyz+ pqr) - 10/100";

char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };
string[] parts = Test.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
    Response.Write(parts[i]);
}

我输出为:

abc xyz pqr 10100

但我想:

abc
*
(
xyz
+
pqr

......等等。

(在c#或javascript中)

2 个答案:

答案 0 :(得分:2)

在JavaScript中,您可以使用正则表达式的捕获组:

var test = "abc * (xyz+ pqr) - 10/100";

var regex = /\s*([()*/+-])\s*/;
var parts = test.split(regex);
for (var i = 0; i < parts.length; i++)
    document.writeln(parts[i]);

然而,这在旧版Internet Explorer中不起作用,您需要在那里手动执行或使用this shim。更好的跨浏览器解决方案:只需匹配变量名称和数字,然后使用match

var regex = /[()*/+-]|[a-z]+|\d+/g;
var parts = text.match(regex);

答案 1 :(得分:-1)

//Change this line
char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };

//Change it to
char[] delimiters = new char[] { ' ' };