Regex 升华文本:使用正则表达式排除所选内容?

Regex 升华文本:使用正则表达式排除所选内容?,regex,sublimetext2,sublimetext,sublimetext3,Regex,Sublimetext2,Sublimetext,Sublimetext3,是否有方法仅选择具有正则表达式的分组零件 用于日志文件中的以下行 Mon Feb 09 20:07:43 PKT 2015: VerifyPdb.Rama: Status: FINISHEDPART | Message: {fep=98.0, op=3.0, ac=6.0, ap=9.0} 我做了下面的正则表达式 (some regex for another line)|(rama\:).*(\{.*\}) 只给我这个 Rama:{fep=98.0, op=3.0, ac=6.0, ap=

是否有方法仅选择具有正则表达式的分组零件

用于日志文件中的以下行

Mon Feb 09 20:07:43 PKT 2015: VerifyPdb.Rama: Status: FINISHEDPART | Message: {fep=98.0, op=3.0, ac=6.0, ap=9.0}
我做了下面的正则表达式

(some regex for another line)|(rama\:).*(\{.*\})
只给我这个

Rama:{fep=98.0, op=3.0, ac=6.0, ap=9.0}
不应选择其他内容<应从选择中跳过
(\{.*})
中的部分

我该怎么做?这只是日志文件中许多值中的一个

你可以试试。在Perl中,regex可以在
\K
选项的帮助下从最终匹配中省略它以前找到的所有内容

以下是Sublime Text 2选项的屏幕截图:

:

  • 打开文件并按CTRL+F键
  • 键入
    Rama\:.+\K(\{[^\}]*\})
    regex
  • 确保正则表达式和突出显示匹配项处于启用状态
  • 单击“查找全部”
  • 按CTRL+C组合键
现在剪贴板中应该有所有匹配项


你是说这个还是?@AvinashRaj在崇高的文本中,它只是在有
\{.*}的行上选择
Rama:
@AvinashRaj与我一直试图做的一样。你的问题解决了吗?@AvinashRaj否。选择
Rama:
}
之间的所有内容,而只从带括号的行中选择单词
Rama:
。这在崇高文本中不起作用。方括号
\[
的作用是什么?请重试。我猜在复制/粘贴时出现问题,演示页面上的正则表达式内部没有
\[/code>。如果
\K
不起作用(它必须根据,因为Sublime Text regex flavor是基于Perl的),我想您将不得不通过使用
(?I)rama:.*(\{[^}]*})
,或者只使用捕获所有
{}
({[^}]*})
,或者使用另一个支持.NET正则表达式的编辑器,来获取
(?I)所需的内容(此正则表达式仅捕获
{.*}
而不是单词
rama:
。哪个文本编辑器可以做到这一点?我想毫不费力地提取日志文件中的大量数据。请查看更新后的答案,我尝试了Sublime text 2,但没有任何问题。无法选择不连续的文本。但是,您可以先从
{}中获取文本
,将它们复制到新文档中,然后在“查找内容”中使用“全部替换为”,在“替换为”中使用“全部替换为”。