使用RegEx替换函数(C#)在字符串中提供单词和数字之间的空格

时间:2016-08-11 06:58:06

标签: c# regex

Membernumber350005Calculationdate04/08/2015Casenumber880898Case0.12Amount546.3Fors

这是一个包含单词和数字(包括日期和小数格式)的字符串,它们之间没有空格。我想在单词和数字之间留出空间。我的输出应该是一个字符串而不是一个数组,应该是这个..

Membernumber 350005 Calculationdate 04/08/2015 Casenumber 880898 Case 0.12 Amount 546.3 Fors

我尝试了以下代码。我成功地过滤了日期和十进制格式,并为它们提供了空间。但是我被困在了文字周围。

string s = "Membernumber350005Calculationdate04/08/2015Casenumber880898Case0.12Amount546.3Fors";
string SpaceAroundDate = Regex.Replace(s, @"(\d+/\d+/\d+)", @" $1 ");
string SpaceAroundDecimal = Regex.Replace(SpaceAroundDate, @"(\d+\.\d+)", @" $1 ");

使用此代码,我可以做到这一点,

Membernumber35000520Calculationdate 04/08/2015 Casenumber880898Case 0.12 Amount 546.3 fors

然后我写了这个,以便在单词和数字之间留出空格,

string SpaceAroundWord = Regex.Replace(SpaceAroundDecimal, @"([A-Za-z]\w+)([0-9]\d+)([A-Za-z]\w+)", @"$1 $2 $3");

但它不起作用。希望我已经提供了足够的信息。提前致谢。

1 个答案:

答案 0 :(得分:0)

你去吧

string input = @"Membernumber350005Calculationdate04/08/2015Casenumber880898Case0.12Amount546.3Fors";
string result = Regex.Replace(input, @"([a-zA-Z]+|[0-9]+[0-9/\.]+[0-9]+)", "$& ");