我正在try 捕获两组字符串之间的一组字符串.RegEx在很大程度上是有效的,但当模式发生变化时,它并不能涵盖所有情况.

该字符串为:

2023-03-20 / 10:56:58 4737 Security-Enabled Global Group Modified 73 high SRVDC2 john.smi.admin 10.7.3.252 1

日期和时间后是一个四位数字,有时不存在,因此日志(log)显示N/A.这就是我遇到麻烦的时候.RegEx必须能够捕获四位数字和N/A消息.

以下是我try 过的:

import re
string = '2023-03-20 / 10:56:58 4737 Security-Enabled Global Group Modified 73 high SRVDC2 john.smi.admin 10.7.3.252 1'
pattern = '(?<=\d{4} )(.*?)(?=\s\d{2}\s)'
res = re.findall(pattern,string,re.MULTILINE)
print(res)

推荐答案

请改用'(?<=\d{4} | N/A )(.*?)(?=\s\d{2}\s)'.

它向后看到4位数字和空格之间的空格或N/A.这是保持后视组固定长度所必需的.

Python相关问答推荐

Django序列化器没有验证或保存数据

如何在telegram 机器人中发送音频?

"Discord机器人中缺少所需的位置参数ctx

如何在Python中使用ijson解析SON期间检索文件位置?

NumPy中的右矩阵划分,还有比NP.linalg.inv()更好的方法吗?

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

添加包含中具有任何值的其他列的计数的列

点到面的Y距离

Pandas实际上如何对基于自定义的索引(integer和非integer)执行索引

优化pytorch函数以消除for循环

如何制作10,000年及以后的日期时间对象?

使用groupby Pandas的一些操作

OR—Tools中CP—SAT求解器的IntVar设置值

在Django admin中自动完成相关字段筛选

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

如何更新pandas DataFrame上列标题的de值?

如何启动下载并在不击中磁盘的情况下呈现响应?

名为__main__. py的Python模块在导入时不运行'

以逻辑方式获取自己的pyproject.toml依赖项

如何将一组组合框重置回无 Select tkinter?