正则表达式 - 使用神交短语之间提取文本

问题描述 投票:1回答:2

我试图用正则表达式来捕获两个“标签”之间的一些信息。例如:一些文本和一些更多的文本错误消息:HTTP 404个未找到程序:一些文本一些文本

我需要的是分析这个整个领域,找到短语“错误信息:”和“办法”,捕捉它们之间有什么,在这种情况下,“HTTP 404未找到”。我只需要显示这些标记之间的文本,这是没有必要显示的标签。

我尝试使用正则表达式和神交很多事情,但我的努力没有成功。

没有人有任何想法,我怎么能做到这一点?

非常感谢!

regex grok phrase
2个回答
0
投票
@capture = $text =~ m/(Error message:)(.*?)(Procedures:)/s;
$capture = join '', @capture;
$capture =~ s/<.*?>//g;

只要抓住它,把它保存在数组,做任何你想用它......在这里,我转换匹配回字符串,这样我就可以申请另一个正则表达式,从而消除标签。你当然可以在每个阵列指标的适用这种替代正则表达式。

希望这个代码不包含错误,我没有编译它,希望你能找到它,如果你使用的是不同的语言比Perl 5的替代品。


0
投票

至于你问也为神交模式我认为提交另一份答案。在这种情况下我的解决方案是基于使用正则表达式的非相关部分,包括在年底或年初的预期标签匹配神交图案。解决的办法是:

(?<notImportant1>[A-Za-z ]* Error message:) (?<textBetweenTags>[A-Za-z0-9 ]*) (?<notImportant2>Procedures: [A-Za-z ]*)

它会为您提供这样的:

  • notImportant1:一些文字和一些文字错误信息:
  • textBetweenTags:HTTP 404未找到
  • notImportant2:过程:一些文本一些文本

在这里,你已经提取出来作为“textBetweenTags”你在你感兴趣的子字符串。要认识到,如果之前或之后的标签文本包括数字或正则表达式应该改变其他符号。

编辑:顺便说一句,不知道你是知道的工具,但你可以测试模式here

© www.soinside.com 2019 - 2024. All rights reserved.