2013-05-11 144 views
0

我试图用re.findall(pattern, string)从Git Log行中拉出Jira Key。我的例子输入会是这样的:Python findall正则表达式

58df2ac Merge remote-tracking branch 'origin/ABC-1234' into release-1.1.0 
df40f59 Merge branch 'ABC-2345' into release-1.1.1 

我想摆脱这种东西只是ABC-1234 & ABC-2345

我知道我想要使用的逻辑将以ABC-开头,直到它找到一个非数字,如引号,空格或字母。

任何帮助计算正确的正则表达式将不胜感激。

感谢

回答

1

这工作:

import re 

st='''\ 
58df2ac Merge remote-tracking branch 'origin/ABC-1234' into release-1.1.0 
df40f59 Merge branch 'ABC-2345' into release-1.1.1''' 

for line in st.splitlines(): 
    print re.findall(r"'.*ABC-(.*)'",line) 

或者,如果你知道 'ABC-XXX' 只是个数字,这是更好:

print re.findall(r"'.*ABC-(\d+)",line) 

两种情况下,打印:

['1234'] 
['2345']