现在有三个字符串
string line = "ARF15_F16_PN4A 001000000010CW4116P047// ASSHC TK BKT支架 E 0000000000000000000000000000000 "; string line1 = "ARM620N_M700N_M550N 00100000026XBTSC50P16000 AA螺钉 (5×16) C 0000000000000000000000000000000 "; string line2 = "ARM620N_M700N_M550N 00300000007CPWBF1453FCE2 AX原稿检测发光电路板 E 0000000000000000000000000000000 ";
现在要做的就是
如果两个字符串之间有一个空格,就把空格去除,如果有多于一个空格的就变为一个空格。
我已经写了一个方法
这个方法可以去掉多个空格,
但是如何去掉一个空格呢
public static string RemoveRepeaterSpaceSperator(string strWords) { Regex replaceSpace = new Regex(@"\s{1,}", RegexOptions.IgnoreCase); return replaceSpace.Replace(strWords, ",").Trim(); }
上面是我的代码,大家帮我看一下,要怎么修改。
private const string REGEX_ONE_SPACE = @"\s{1}"; //一个空格的正则表达式
private const string REGEX_MULTIPLE_SPACE = @"\s{2,}"; //多个空格的正则表达式
private const string MIDDLE_ONE_SPACE = ","; //因为匹配的和替换的都是空格,如果直接替换会相互影响,所以替换为中间符号,此符号为字符串中不包含的字符
private const string MIDDLE_MULTIPLE_SPACE = ";"; //同上
private const string CHANGE_ONE_SPACE = ""; //最终替换的字符
private const string CHANGE_MULTIPLE_SPACE = " "; //最终替换的字符
public static string RemoveRepeaterSpaceSperator(string strWords)
{
strWords = new Regex(REGEX_MULTIPLE_SPACE, RegexOptions.IgnoreCase).Replace(strWords, MIDDLE_MULTIPLE_SPACE);
strWords = new Regex(REGEX_ONE_SPACE, RegexOptions.IgnoreCase).Replace(strWords, MIDDLE_ONE_SPACE);
return strWords.Replace(MIDDLE_MULTIPLE_SPACE, CHANGE_MULTIPLE_SPACE).Replace(MIDDLE_ONE_SPACE, CHANGE_ONE_SPACE).Trim();
}
这段代码应该可以实现你的要求
这才是真正的好手嘛
正则是用来匹配的,可以达到你要的这种?围观下
你已经实现去掉多个空格的话,那就再把空格替换成"",再把原来 ","换成" "
@Rich.T:
哥啊……我的代码你运行了没……没运行你就在这里不负责任地发表议论……
public string ReplaseStr(string line){
line=new Regex(@"(\s{1})", RegexOptions.IgnoreCase).Replase(line,'');//一个空格,就把空格去除
line=new Regex(@"(\s{2,})", RegexOptions.IgnoreCase).Replase(line,' ');//如果有多于一个空格的就变为一个空格
return line;
}
你可真会相当然地回答问题……