【问题标题】:How to print Delimiters after splitting string [duplicate]拆分字符串后如何打印分隔符[重复]
【发布时间】:2013-01-15 00:35:04
【问题描述】:

可能重复:
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 中)

【问题讨论】:

标签: c# javascript


【解决方案1】:

在 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);

【讨论】:

  • 我也想要数学符号 (+,-,(,),*,/,)。它只打印 abc xyz pqr 10 100
  • 没有。它会打印abc * ( xyz + pqr ) - 10 / 100,除非您使用不支持的浏览器(注意两个分隔符之间的空字符串)。
【解决方案2】:
//Change this line
char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };

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

;

【讨论】:

  • 示例字符串在他感兴趣的所有术语之间没有空格。
  • 啊,好吧!在你指出之前,不要把它弄出来!干杯!
猜你喜欢
  • 1970-01-01
  • 2020-10-03
  • 2020-01-07
  • 2011-08-04
  • 2022-01-01
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
相关资源
最近更新 更多