正则表达式删除C#中数字之间的空格

时间:2015-02-18 12:21:34

标签: c# regex

我希望在给定字符串中出现的数字之间删除数字之间的空格。我尝试使用以下表达式,该表达式在某些但不是所有情况下都有效:

result = Regex.Replace(input, @"(?<=\d) (?=\d)", "");

我已使用以下输入进行测试:

  1. 使用input = "1 500 000 frobs.",结果为"1500000 frobs."(正确)。
  2. 使用input = "There are 1 500 000.",结果为"There are 1 500 000."(不正确)。
  3. 我无法弄清楚为什么它在第一种情况下起作用,而不是第二种情况。我错过了什么?

1 个答案:

答案 0 :(得分:2)

使用\p{Zs}空格字符类将确保正则表达式匹配所有空格。我建议使用此代码:

result = Regex.Replace(input, @"(?<=\d)\p{Zs}(?=\d)", "");