正则表达式在C#中的用法:
三种情况举例
A                                   B      
Our W a y to home    our way to home
O u r way to home     our way to home
our way to h o m e     our way to home要用正确的B来代替A,如何用正则表达式来表示A的三种情况和B??
(A1:句中有2个以上字母以空格间隔出现)
(A2:句首有2个以上字母以空格间隔出现)
(A3:句尾有2个以上字母以空格间隔出现)
急啊 !!

解决方案 »

  1.   

    1、不知道想干什么,标题说repace(replace?),正文没看到和这有什么关系
    2、没看出哪个是B
    3、O u r,这不是正则能解决的问题,除非给出明确的规则
      

  2.   

    A                     B   
    Our W a y to home    our way to home
    O u r way to home    our way to home
    our way to h o m e   our way to home我确定以及肯定这是可以用正则解决的问题,而且已经cover到A1部分情况了,就是不知道如何全部cover,实现如下
    (\s+[a-zA-Z]) ([a-zA-Z]\s+) $1$2
    这是利用正则表达式的模式匹配,我有点不熟悉
      

  3.   

    A    
    Our W a y to home 
    O u r way to home 
    our way to h o m e B
    our way to home
    our way to home
    our way to home
      

  4.   

    string Replace(string input, string pattern, string replacement);
      

  5.   

    本帖最后由 lxcnn 于 2012-11-01 14:04:54 编辑
      

  6.   

    你的意思是一旦出现
    I a m here
    这样的,就直接合并成
    Iam here
    就行了,别的不用管?如果是这样,那很简单
    Regex reg = new Regex(@"(?<=(?:^|\s)[a-zA-Z])\s(?=[a-zA-Z](?:\s|$))");
    string result = reg.Replace(yourStr, "");
    richTextBox2.Text = result;
      

  7.   

    #7说的的确是一种没有被cover到的情况;;但是这些数据是客户提供,出现这样的情况就不是我能处理的问题,我会反馈过去;所以诸如此类的错误你可以略过;用正则,可能真的没法处理这种变化的长度的问题,所以我会再看看,如果是个死胡同,那就不再深究了,只是用才#处理就算了。