多行组并使用正则表达式进行搜索

2024-04-04

好的,正则表达式向导。我希望能够搜索我的日志文件并找到其中包含“错误”一词的任何会话,然后返回整个会话日志条目。

我知道我可以使用字符串/数组来做到这一点,但我想学习如何使用正则表达式来做到这一点,但这就是问题。如果我决定使用正则表达式来做到这一点,我会吗?有一两个问题 http://www.codinghorror.com/blog/archives/001016.html? ;o)

这是日志:

PS:我正在使用 perl Regex 引擎。

Note:我认为我无法在正则表达式中完成此操作。换句话说,我现在有两个问题。 ;o)我已经尝试了下面的解决方案,但是,由于我通过声明我使用的是 Perl 引擎而混淆了问题,因此许多答案都是 Perl 中的(在我的情况下不能使用)。不过,我确实在下面发布了我的解决方案。


2008.08.27 08:04:21 (Wed)------------Start of Session-----------------  
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)  
Sending stdin.txt to [email protected] /cdn-cgi/l/email-protection  
Subject: test 1  
Login name is [email protected] /cdn-cgi/l/email-protection  
The SMTP server does not require AUTH LOGIN.  
Are you sure server supports AUTH?  
The SMTP server does not like the sender name.  
Have you set your mail address correctly?  
2008.08.27 08:04:24 (Wed)-------------End of Session------------------  

2008.08.27 08:05:56 (Wed)------------Start of Session-----------------  
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)  
Error: Wait a bit (possible timeout).  
SMTP server error  
Error: Not a socket.  
Error: Not a socket.  
2008.08.27 08:06:26 (Wed)-------------End of Session------------------  

2008.08.27 08:07:58 (Wed)------------Start of Session-----------------  
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)  
Sending stdin.txt to [email protected] /cdn-cgi/l/email-protection  
Subject: Lorem Update 08/27/2008  
Login name is [email protected] /cdn-cgi/l/email-protection  
2008.08.27 08:07:58 (Wed)-------------End of Session------------------  

凯尔的答案可能是最糟糕的,但如果您将所有内容都放在一个字符串中并且想要使用单个正则表达式,这里有一个(经过测试的)解决方案:

(第二次更新:修复了一点,现在比以往更具可读性;-)

my $re = qr{
        (           # capture in $1
         (?:
          (?!\n\n). # Any character that's not at a paragraph break
         )*        # repeated
         error
         (?:
          (?!\n\n).
         )*
        )
}msxi;


while ($s =~ m/$re/g){
    print "'$1'\n";
}

丑陋,但你要求它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多行组并使用正则表达式进行搜索 的相关文章

随机推荐

  • 设置自定义 Git 安装

    我希望将 Git 安装在不同于默认位置的自定义位置usr local git bin git软件包安装程序所在的目录http git scm com http git scm com 网站安装到 例如 我只是尝试复制内容usr local
  • 如何将 TLD 和 Tag Lib 文件添加到 Maven 的 jar 项目中

    我有一个 Maven 项目 打包为jar 我还有一个 Maven 项目 打包为war 这个 war 项目有一个 tld 文件和一些 xhtml 文件 标签库 战争项目的结构 基本上 是 pom xml src main java webap
  • Angular7 中的来源“http://localhost:4200”已被 CORS 策略阻止

    我想使用http 5 160 2 148 8091 api trainTicketing city findAll http 5 160 2 148 8091 api trainTicketing city findAll在我的角度项目中休
  • 如何检测首选项是否发生更改?

    我有一个类扩展 PreferenceActivity 并显示我的应用程序的首选项屏幕 是否可以检查首选项是否有任何更改 这有助于 http developer android com reference android content Sh
  • 连接到 localhost:6379 时出现错误 99。无法分配请求的地址

    设置 我有一个虚拟机 并在虚拟机中运行三个容器 一个 nginx 代理 一个非常简约的 Flask 应用程序和 redis Flask 应在端口 5000 上提供服务 而 redis 应在 6379 上提供服务 这些容器中的每一个都可以作为
  • JQuery 中类似 C# 的 String.Format() 函数? [复制]

    这个问题在这里已经有答案了 是否可以在 JQuery 中调用类似 C 的 String Format 函数 相当于 JQuery 中的 String format https stackoverflow com questions 1038
  • 如何在tmux中获取send-keys的结果?

    我正在使用 tmux 来运行服务器控制台 要检查控制台是否正在应答 我想使用send keys在控制台上运行命令 tmux send keys t mysess mywin show info Enter 实际上 我目前正在将完整的控制台输
  • Django 开发服务器 CPU 密集型 - 如何分析?

    我注意到本地 windows7 机器上的 django 开发服务器 版本 1 1 1 正在使用大量 CPU 根据任务管理器的 python exe 条目 约为 30 即使处于空闲状态 即没有请求到来进 出 是否有一种既定的方法来分析可能造成
  • Magento 图片上传表单字段

    我跟着这个链接 http www magentocommerce com wiki 5 modules and development admin how to create pdf upload in backend for own mo
  • SQL Server 更新触发器,仅获取修改的字段

    我知道COLUMNS UPDATED 好吧 我需要一些快速的捷径 如果有人做了 我已经在做了 但如果有人可以节省我的时间 我会感激的 我基本上需要一个仅包含更新的列值的 XML 我需要它用于复制目的 SELECT FROM Insert 为
  • Jenkins 未识别 Maven

    我在Windows 8上安装了Tomcat 7 上面部署了Jenkins 我在 Jenkin 设置中配置了 JDK Ant 和 Maven 在 Maven 部分 我将名称命名为 LocalMaven 将 MAVEN HOME 命名为C Te
  • Postgres 正则表达式 负向前瞻

    场景 匹配除字符串 J01FA09 之外的任何以 J01 开头的字符串 我很困惑为什么以下代码不返回任何内容 SELECT 1 WHERE J01 FA09 J01FA10 当我能看到regexr com https regex101 co
  • fft 和小波

    我可以使用 fft 获取加载的 1 秒音频文件的频率 相位和幅度 并重新创建它 我现在想做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置 并将数据放入数组中 示例 100hz 从 0 23 秒到 0 34 秒开始 104 34hz
  • 如何修复双编码 UTF8 字符(在 utf-8 表中)

    以前的一个LOAD DATA INFILE运行时假设 CSV 文件是latin1 编码 在此导入过程中 多字节字符被解释为两个单字符 然后 再次 使用 utf 8 进行编码 这种双重编码产生了异常 例如 代替 如何纠正这些字符串 以下 My
  • 在电子中创建多个预加载文件(每页一个)

    我正在创建我的第一个 Electron 应用程序 并且完成了表单的第一页 现在这个应用程序不是 SPA 所以我有大约 3 4 个不同的页面 并且页面通向另一个页面 为了允许正确的代码组织 我想为每个面向客户端的页面保留一个单独的预加载文件
  • 如何设置 NHibernate 事务的超时

    我需要在单个事务中完成大量数据库处理 包括使用 NHibernate 的一些处理 为了使所有内容在同一个事务中工作 我使用 NHibernate 的 Session 来启动它 并在其中登记其他工作的命令 一切都很顺利 直到我承诺为止 那时我
  • 停止无限循环中的delphi程序

    当 Delphi 中发生无限循环时 当我按下停止按钮时 调试器甚至不会给我堆栈跟踪 如果我怀疑程序在哪里停止 我可以放置一个断点 如果这是正确的无限循环 它将停止 下面是一个故意造成无限循环的示例程序 procedure TForm1 bt
  • Android 中的最大 BackStack 大小

    我是android开发的新手 我需要知道最大内存大小 of 后台堆栈 in android我想知道有多少活动 of 安卓应用 can be 存储在 BackStack 中 Thanks 后台堆栈的最大内存大小与设备上的可用内存量相同 您可以
  • 有 F#(或 C#)中的 R 树实现吗? [复制]

    这个问题在这里已经有答案了 可能的重复 是否有任何记录在案的 NET 的免费 R Tree 实现 https stackoverflow com questions 2041834 is there any documented free
  • 多行组并使用正则表达式进行搜索

    好的 正则表达式向导 我希望能够搜索我的日志文件并找到其中包含 错误 一词的任何会话 然后返回整个会话日志条目 我知道我可以使用字符串 数组来做到这一点 但我想学习如何使用正则表达式来做到这一点 但这就是问题 如果我决定使用正则表达式来做到