如何在一行中的许多字符串中查找字符串

时间:2017-04-06 17:25:05

标签: python string

我需要从日志中找到用户。

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

有没有简单的方法来识别该行中提到的用户ID。

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

此处,ND9074525是用户ID。我的目的是从行中识别用户。

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

我不想遍历所有可能的用户ID。我想到了创建所有用户ID的列表,并通过某种方法找到了在线使用的用户ID。不确定它是否存在。

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式来获取用户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'

答案 1 :(得分:1)

使用正则表达式查找与用户标识符模式匹配的所有字符串;那么你可以看看它们中是否有任何实际的用户ID。