2017-09-05 67 views
0

只是正則表達式匹配元素之前發現元素的輸入如下正是:需要通過Python

"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' 

或者,如果你的意思是在製表符分割:

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

注意,第二個參數決定的時間分割數。如果my_string包含多個製表符,則只會在第一個字符處進行拆分。

+0

是的。正則表達式經常催眠我們使用它們... –