现在的位置: 首页 > 综合 > 正文

去掉重复字符的正则表达式

2013年02月02日 ⁄ 综合 ⁄ 共 421字 ⁄ 字号 评论关闭

 今天在论坛上看到这样一个题目,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以外的任意字符。结果为"中华人民共和国”。

 

抱歉!评论已关闭.