2017-04-06 11 views
0

ログからユーザーを探す必要があります。多くの文字列の中で文字列を見つける方法

ログファイルのコード行があります。行内の文字列の1つがユーザーIDです。私はすべてのユーザーIDのリストも持っています。

この行に記載されているユーザーIDを簡単に識別する方法はありますか。

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

ND9074525ユーザIDです。私の意図は、ラインからユーザを特定することです。

他の可能性のあるユーザーIDは、私はすべての可能なユーザーIDをループにしたくないAB9074158AC9074168AD9074123AE9074152

することができます。私は、すべてのユーザーIDのリストを作成し、何らかの方法で行内で使用されているユーザーIDを見つけることを考えました。それが存在するかどうかは不明です。

+1

ユーザーIDには、任意の特定のパターンに従って、もしそうなら、それは何ですか? –

+0

はい、2桁のアルファベットの後に7桁の数字が続きます。 –

+2

2つの完全なアルファベット?ああ待って:2文字。 – trincot

答えて

1

正規表現を使用して、ユーザーIDのパターンに一致するすべての文字列を検索します。それらのどれかが実際のユーザIDであるかどうかを確認することができます。

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

をそして有効なユーザIDに対してチェック:

3

ユーザー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' 
関連する問題