2017-09-05 69 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

是的。正则表达式经常催眠我们使用它们... –