首页 新闻 会员 周边

正则表达式问题

0
悬赏园豆:20 [已解决问题] 解决于 2013-02-01 13:10

现在有三个字符串

            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();

        }

上面是我的代码,大家帮我看一下,要怎么修改。

 

需要格局的主页 需要格局 | 老鸟四级 | 园豆:2145
提问于:2013-01-31 17:54
< >
分享
最佳答案
0

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();
}

这段代码应该可以实现你的要求

收获园豆:20
老孟Flutter | 初学一级 |园豆:55 | 2013-02-01 12:35

这才是真正的好手嘛

需要格局 | 园豆:2145 (老鸟四级) | 2013-02-01 13:10
其他回答(2)
-1

正则是用来匹配的,可以达到你要的这种?围观下

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-31 17:57

你已经实现去掉多个空格的话,那就再把空格替换成"",再把原来 ","换成" "

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2013-01-31 18:00

@Rich.T: 

 

哥啊……我的代码你运行了没……没运行你就在这里不负责任地发表议论……

支持(0) 反对(0) 需要格局 | 园豆:2145 (老鸟四级) | 2013-01-31 18:03
-1

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;

}

ifecy | 园豆:265 (菜鸟二级) | 2013-01-31 18:11

你可真会相当然地回答问题……

支持(0) 反对(0) 需要格局 | 园豆:2145 (老鸟四级) | 2013-01-31 18:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册