删除作为后续行的子字符串的行

Posted

技术标签:

【中文标题】删除作为后续行的子字符串的行【英文标题】:Deleting a row which is substring of the subsequent row 【发布时间】:2016-08-06 08:54:21 【问题描述】:

在 Libre office calc 中,我有一个标准,我需要删除一行,以防它是前一行的子字符串。 IE 如果输入是

ABC

ABCDE

XYZ

XYZRE

我应用正则表达式,输出必须是

ABCDE

XYZRE

【问题讨论】:

尝试用$1替换^(.+)[\r\n]+\1 对不起@WiktorStribiżew。我无法遵循答案 我理解 LO 中正则表达式的方式,它们适用于每个单元格,而不是每个电子表格。一个简单的解决方法是将电子表格从 calc 导出为 CSV 格式,并在处理正则表达式搜索和替换的文本编辑器上使用 Wiktor Stribiżews 正则表达式。 谢谢两位。我正在做 CSV 。但问题是它选择了两个条目并替换它们。我只想保留第二个,同时删除第一个。 所以,我稍微修改了@WiktorStribiżew 的答案,将 $1 替换为 /1 【参考方案1】:

您需要先捕获一行,然后是换行符,然后使用对捕获的组值的反向引用,以确保下一行从之前的整行开始。

使用

 ^(.+)[\r\n]+\1

替换为

 $1

有些编辑器需要\1 而不是$1

【讨论】:

以上是关于删除作为后续行的子字符串的行的主要内容,如果未能解决你的问题,请参考以下文章

删除不包含特定字符串的行的百分比

删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

获取被筛选器从 spark 数据帧中删除的行的示例

删除带有特定字符数的行

sed 练习

手动从gridview绑定中删除一行?