2017-11-03 14 views
0

私はPythonで次のような問題があります。Pythonの正規表現を返します間違ったグループ

searchstring = "([A-Z0-9]*)_" 
basename = "AK4RAE00005_ALL_MEASUREMENT.a2l" 
m = re.search(searchstring, basename) 
if m and m.group(0): 
    print m.group(0) 

を私は結果があることが予想:AK4RAE00005ではなく、それはAK4RAE00005_ である私はhttps://regexr.com/に私の正規表現をチェックし、それをせずに正しいグループを見つけましたアンダースコア

答えて

1

try m.group(1)

m.group(0)は文字列全体と一致します。

searchstring = "([A-Z0-9]*)_" 
basename = "AK4RAE00005_ALL_MEASUREMENT.a2l" 
m = re.search(searchstring, basename) 
if m: 
    print m.group(1) 
+0

そのように単純です。ありがとうございました –

0

結果は正しいものの、混乱は理解できます。実際のグループの内容は、1から始まるようにインデックスされます。m.group(1) == 'AK4RAE00005'あなたのパターンにアンダースコアが含まれているため、グループゼロは全体一致、キャプチャグループ、およびすべてです。'AK4RAE00005_'です。

関連する問題