2017-09-05 1 views
0

経由だけで正規表現マッチ要素の前に要素を見つける必要があります。)は、入力が正確に以下の通りであるパイソン

"dinem-5554\tlee"

私は\tlee前の値を取得するために正規表現マッチを行う必要があり、それは、dinem-5554です。これは私が試したことです:

m = re.findall(r'(\tlee)',a)[0] 
if m: 
    print m 
else: 
    print "none" 
+0

're.findall("(。+?)\ tlee "、a)' –

+0

"前の値"を定義してください。文字列 '' dinem-5554 lee "'で一致するものは何ですか? "dinem-5554"? "5554"? "4"?スペース文字?他に何か? – Kevin

+0

'(。*)\ tlee'を試して、キャプチャグループ' $ 1 'を参照することもできます – ctwheels

答えて

1

あなたは正規表現を使う必要はありません。組み込みのsplit method of strを使用してください。

my_string = "dinem-5554\tlee" 
groups = my_string.split('\tlee', 1) 

if len(groups) > 0: 
    print groups[0] 
else: 
    print 'none' 

それとも、タブ文字で分割することを意味する場合:第2引数は分割する回数を決定することを

groups = my_string.split('\t', 1) 

注意を。 my_stringに複数のタブ文字が含まれている場合は、最初のタブ文字でのみ分割されます。

+0

ええ。正規表現はしばしば私たちに催眠術を使って... –

関連する問題