正则表达式在 C# 中按空格或减号拆分字符串

Regex to split string by whitespace OR minus signs in C#

我有一个字符串,其中列出了可以为负值或正值的温度。

其中一些温度将由空格分隔,而另一些则不会。

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

我想通过只保留这样的值来拆分该字符串:

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

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

非常感谢您!

干杯

根据下面的正则表达式拆分即可。

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

DEMO

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

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

  (?!-)|(?=-)

检查这个演示 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