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