一尘不染

用定界符分割字符串,但将定界符保留在C#中的结果中

c#

我想用定界符分割一个字符串,但将定界符保留在结果中。

我将如何在C#中执行此操作?


阅读 242

收藏
2020-05-19

共1个答案

一尘不染

如果希望分隔符为“自己的分隔符”,则可以使用Regex.Split例如:

string input = "plum-pear";
string pattern = "(-)";

string[] substrings = Regex.Split(input, pattern);    // Split on hyphens
foreach (string match in substrings)
{
   Console.WriteLine("'{0}'", match);
}
// The method writes the following to the console:
//    'plum'
//    '-'
//    'pear'

因此,如果您要拆分数学公式,则可以使用以下正则表达式

@"([*()\^\/]|(?<!E)[\+\-])"

这将确保您还可以使用常量,例如1E-02,并避免将它们拆分为1E,-和02

所以:

Regex.Split("10E-02*x+sin(x)^2", @"([*()\^\/]|(?<!E)[\+\-])")

产量:

  • 10E-02
  • *
  • x
  • +
  • sin
  • (
  • x
  • )
  • ^
  • 2
2020-05-19