正则表达式用空格分割字符串或减去C#中的符号

时间:2015-06-16 04:37:02

标签: regex string split

我有一个字符串,其中包含可以为负数或正数的温度列表。

这些温度中的一些将由空白分隔,而有些则不会。

即:19 20 22 -1 -3-4-10 -7 2 10

我想通过仅保留这些值来分割该字符串:

19
20
22
-1
-3
-4
-10
-7
2
10

任何人都可以帮助我吗?我对正则表达式没有经验。

非常感谢你!

干杯

2 个答案:

答案 0 :(得分:2)

根据以下正则表达式进行拆分。

@"\s+|(?<!\s)(?=-)"

DEMO

string[] split = Regex.Split(input_str, @"\s+|(?<!\s)(?=-)");

答案 1 :(得分:0)

你可以使用这个正则表达式

  (?!-)|(?=-)

查看此演示Demo

string temperatures = "19 20 22 -1 -3-4-10 -7 2 10";

string[] res = Regex.Split(temperatures, " (?!-)|(?=-)");

foreach (var item in res)
{
    Console.WriteLine(item);
}

#19
#20
#22
#-1
#-3
#-4
#-10
#-7
#2
#10