You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式前后断言问题求助:无法捕获目标事件消息

问题解决

正则表达式修正

你的原正则未能匹配第二条消息,核心原因是预查条件没有精准定位到消息的起始位置(缺少对数字/-后空格的匹配),导致匹配范围出现偏差。根据给定规则,修正后的正则表达式如下:

import re

text = """2023-04-05 / 15:53:58 104 Windows Event Logs Cleared 21 low SRVR3 - j.smith 1
          2023-03-20 / 15:17:55 4738 Account Configured with Never-Expiring Password 47 medium DC02SRV - m.rossi 2"""

# 修正后的正则:精准匹配3/4位数字或"-"后的空格,捕获到两位数字前的空格为止
pattern = r'(?<=\d{3,4} |- )(.*?)(?= \d{2} )'
results = re.findall(pattern, text)

print("\n".join(results))

运行结果会输出两条目标消息:

Windows Event Logs Cleared
Account Configured with Never-Expiring Password

正则说明:

  • (?<=\d{3,4} |- ):正向预查,定位到3/4位数字后空格或**-后空格**的位置,确保消息起始位置准确。
  • (.*?):非贪婪匹配任意字符,避免过度匹配到无关内容。
  • (?= \d{2} ):正向预查,定位到两位数字前空格的位置,确保消息结束位置准确。

正则教程推荐

  • Python官方文档正则部分:针对Python使用者,从基础语法到高级特性都有清晰讲解,搭配Python代码示例,实用性强。
  • 《正则表达式必知必会》:薄册子一本,内容循序渐进,用简单易懂的例子讲解核心概念,适合入门和巩固基础。
  • 离线练习工具:可以用Python自带的re模块在本地shell里逐行测试正则,边写边验证,快速掌握匹配逻辑。

内容的提问来源于stack exchange,提问作者OverflowStack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:12:47