一个正则表达式

来源:互联网 发布:平面设计软件课程 编辑:程序博客网 时间:2024/05/18 01:33

今天在论坛上看到这样一个题目,String s1 = "中华人人";String s2 = "人民共";String s3 = "共和国";

合并之后如何去掉重复的字符,我知道用正则表达式,可是不知道pattern如何写,一位高手解决了这个问题,如下:

 String s1 = "中华人人";
 String s2 = "人民共";
 String s3 = "共和国";
 String s = s1 + s2 + s3;
 String t = Regex.Replace(s,@"(/w)(?=[^/1]*/1)","");
 Console.WriteLine(t);

 

/w为任何字母或数字或下划线或汉字,而(/w)即为后向引用,用小括号指定一个子表达式,匹配这个子表达式的文本,这个分组自动拥有了一个组号,1,后向引用用于重复搜索前面某个分组匹配的文本,(?=exp)为零宽断言,用来匹配exp前面的位置,exp则为[^/1]*/1,[^/1]匹配除了/1以外的任意字符。结果为"中华人民共和国”。

原创粉丝点击