如何在lin中的多个字符串中找到一个字符串

2024-06-10 17:45:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从日志中找到用户

我的日志文件中有一行代码。行中的一个字符串是userid。我也有所有userid的列表

有没有什么简单的方法来识别这一行中提到的userid

例如:Calling Business function ProcessSOMBFCommitment_Sourcing from F4211FSEditLine for ND9074524. Application Name [P421002], Version [] (BSFNLevel = 3)

这里,ND9074525是用户id。我的目的是从行中识别用户

其他可能的用户ID可以是AB9074158AC9074168AD9074123AE9074152

我不想遍历所有可能的userid。我想创建一个所有userid的列表,并通过某种方法找到行中使用的userid。不确定它是否存在


Tags: 文件方法字符串代码用户from列表for
2条回答

使用正则表达式查找与用户标识模式匹配的所有字符串;然后您可以查看其中是否有实际的用户标识

可以使用此正则表达式获取用户id:

[A-Z]{2}\d{7}

然后检查有效的用户ID

Regex Demonstration


代码:

import re

users = ['AB9074158', 'AC9074168', 'AD9074123', 'AE9074152']
s = 'Calling Business function ProcessSOMBFCommitment_Sourcing from F4211FSEditLine for ND9074524. Application Name [P421002], Version [] (BSFNLevel = 3)'

pat = '[A-Z]{2}\d{7}'
user_id = re.search(pat, s).group(0)

print(user_id)

if user_id in users:
    print("User accepted!")
else:
    print("User not accepted")

输出:

'ND9074524'
'User not accepted'

相关问题 更多 >