删除除一个词以外的所有内容

Delete everything except a word

我花了好几个小时在正则表达式中寻找一种方法来删除一行中除了特定文本之外的所有内容。它将是这样的:

之前:

Caracas
UNUSABLE TEXT Caracas UNUSABLE TEXT 
Caracas

之后:

Caracas
Caracas
Caracas
Caracas

我用这个做了很多测试:

查找: .(text_you_need_to_keep).

替换:

但我无法让它工作。

您可以使用

查找内容(Caracas)|\R*(?:(?!Caracas).)+\R*
替换为(?{1}:\nCaracas\n)

详情:

  • (Caracas) - 第 1 组:Caracas
  • | - 或
  • \R* - 零个或多个换行符
  • (?:(?!Caracas).)+ - 除了换行符之外的一个或多个字符(尽可能多)不开始 Caracas 字符序列
  • \R* - 零个或多个换行符

如果第 1 组匹配,则替换只是这个第 1 组值,否则,替换为 Caracas 两端都有换行符。

查看正则表达式演示: