RegEx从最后一次出现的字符串开始

М.Бугајски

我有一个文本文件,其中包含要从中删除一些记录的数据集。看起来像这样:

  1. =分隔符=
  2. 数据
  3. nobodyKeyword
  4. 数据
  5. =分隔符=
  6. 数据
  7. wantedKeyword
  8. 数据
  9. =分隔符=
  10. 数据
  11. nobodyKeyword
  12. 数据
  13. =分隔符=
  14. 数据
  15. wantedKeyword
  16. 数据
  17. =分隔符=

我可以使用某个关键字来标识我不需要(或想要)的记录。我想使用正则表达式,利用此关键字和分隔符字符串删除所有这些表达式。删除记录的“底部”部分效果很好,但是当我尝试使用以下方法删除“顶部”部分时:

= separator =。*?unwantedKeyword

匹配的开始在第一个可用的= separator =(第5行)上,而不是在end关键字(第11行)之前的最后一个(第9行)上,从而导致了所需记录被删除。

是否可以仅匹配该字符串的最后一个实例(模拟数据中的= separator =),所以仅匹配行1.至3.和9.至10,而不是1.至3.和5.至11。取代?

编辑:

还是我想让它向后读取文件?Notepad ++禁用了RegEx的该选项,因此不确定是否可行。

第四只鸟

如果要删除第1至3行和第9至11行,则可以使用超前功能来防止匹配以=separator=或包含不要的关键字开头的所有行

^=separator=.*(?:\R(?!(?:=separator=|.*?\bunwantedKeyword\b)).*)*\R.*?\bunwantedKeyword\b.*\R*

正则表达式演示

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

替换字符串,从最后一次出现的字符开始

从导致匹配的某个子字符串的最后一次出现开始获取文本

Postgres Regex:在模式的最后一次出现和行尾之后提取字符串

查找字符串的最后一次出现

Javascript字符串替换最后一次出现

替换字符串(bash)中子字符串的最后一次出现

C ++在子字符串中查找字符串的最后一次出现

PHP替换字符串中最后一次出现的字符串?

查找字符串中子字符串的最后一次出现,将其替换

查找字符串中子字符串的最后一次出现,将其替换

XSL子字符串-字符串的最后一次出现之后

如何找到Swift字符串中子字符串的最后一次出现?

替换字符串中子字符串的最后一次出现

如何从字符串中删除最后一次出现的子字符串?

用熊猫替换字符串中字符的所有但最后一次出现的字符

R-获取第一次出现和最后一次出现之间的子字符串

查找字符串最后一次出现之前的出现索引

查找字符串Python中字符的最后一次出现

替换字符串中字符的最后一次出现

如何使用sed替换字符串中最后一次出现的字符?

在最后一次出现某个字符时分割字符串

优雅地删除最后一次出现字符后的字符串部分

删除文件c ++中字符串中最后一次出现的字符

MYSQL:查找字符串中字符的最后一次出现

如何找到字符串中字符的最后一次出现?

字符串操作以删除最后一次出现的字符“”

在字符最后一次出现之前提取字符串

查询以收集字符串中字符的最后一次出现(SQL Progress OpenEdge)

oracle 12c-在最后一次出现字符后选择字符串