可能重复:
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中)
答案 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[] { ' ' };