删除相邻重复的内容

1、思路:用正则表达式匹配,使用反向引用,替换。查找(.+?)\1 替换为 $1
(.+)\1 为什么不好?因为量词优先,+会尽可能地吃,然后又要一个一个吐出来,效率太差,使用(.+?)\1 取消量词优先,尽量少吃。
(.*?)\1 为什么不好,因为.* 可以匹配没有字符的情况,.+ 要求至少有一个字符,既然是删除相邻重复的内容,当然要求至少有一个字符。
2、删除相邻重复的行,可以转化为删除相邻重复的内容。只不过中间有一个换行符,如下:查找(.+?)(\r\n)\1 替换为 $1。
注意:这里千万不能使用(.*?)(\r\n)\1,会导致没有了换行符,为什么?
因为 (.*?)能匹配空,紧接着换行,反向引用空,替换为空,导致换行符没有了。

时间: 2024-08-03 16:11:51

删除相邻重复的内容的相关文章

删除相邻重复的行

notepad++ 删除相邻重复的行查找 (.+?)(\r\n)\1 替换为 \1 sed 删除重复行sed -nr '1h;1!H;${x;s/(.+)(\n)\1/\1/g;p}' num.txt-n 安静模式,sed 读取下一行之前,都会把模式空间的内容,打印到标准输出,-n取消这种打印.-r 支持扩展正则表达式1h;1!H; 把所有行放到保留空间$ 最后一行,对最后一行处理,然后交换模式空间与保留空间的内容,正则表达式替换掉相邻重复的行. sed好像不支持忽略量词优先,暂时不确定. aw

用sql删除数据库重复的数据的方法

/***********************************************两个意义上的重复记录:1.是完全重复的记录,也即所有字段均重复的记录,2.是部分关键字段重复的记录,比如username字段重复,  而其他字段不一定重复或都重复可以忽略,这类重复  问题通常要求保留重复记录中的第一条记录************************************************/ /*1.数据完全重复(用到了一个临时表#Tmp)*/CREATE TABLE ad

返回数组中的最大值和删除数组重复值-排序

//数组中最大值function getMax(arr){ //取该数组第一个值为最大值 var max=arr[0]; for(var i=0;i<arr.length;i++){ if(arr[i]>max){ max=arr[i] } } return max;} console.log(getMax([2,98,10,88])) /*--------------------------------------------------------------------*///删除数组重

javascript 笔试题之删除数组重复元素

笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content=&quo

删除MySQL重复数据

原文:删除MySQL重复数据 删除MySQL重复数据 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据.因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然而,数据库中存入了多个数据.对于如何造成了这个结果,一时没有想清楚,但为了解决入库慢的问题,首先要删除冗余数据. 问题描述 数据库的表结构很简单,如下: +----------------+--------------+------+-----+---------+--

oracle 删除掉重复数据只保留一条

用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有

嵌入式表单字段中的内容可能被服务器更改以删除不安全的内容。是否要重新加载您的页面以查看保存结果?

嵌入式表单字段中的内容可能被服务器更改以删除不安全的内容.是否要重新加载您的页面以查看保存结果? 最近有朋友问到,当他在SharePoint首页上进行编辑时,插入一段代码.完工后保存就遇到了这个问题. 无论选"是"或"否",保存完毕后在设计视图中都看不到效果,查看代码视图,对应的代码也被删除掉了. 这确实是很恼人,好不容易写了那么多东西,结果最后被SPD自己搞没了,如果之前备份了还好,否则,大半天的成果就不翼而飞了. 首先,关于这个问题的定性要清楚.它不是一个错误:

算法-利用object的key唯一性删除数组重复项

# 利用object的key唯一性删除数组重复项 # uniq.html <!DOCTYPE html> <html lang="en"> <head>  <meta charset="UTF-8">  <title>Document</title>   <script type="text/javascript">        var arr=[12,34,2

删除DataTable重复列,只针对删除其中的一列重复的行

vs2005针对datatable已经有封装好的去重复方法: 1 //去掉重复行 2 DataView dv = table.DefaultView; 3 table = dv.ToTable(true, new string[] { "name", "code" }); 4 5 此时table 就只有name.code无重复的两行了,如果还需要id值则 6 7 table = dv.ToTable(true, new string[] { "id&quo