在Python

时间:2015-06-02 23:22:49

标签: python regex

我在如何根据正则表达式提取(即赋值给变量)一个字符串方面苦苦挣扎。我有正则表达式 - 我在regexpal上测试过。但我迷失在实际上如何在Python中实现它。我的正则表达式字符串是:

http://jenkins.mycompany.com/job/[^\s]+

我想要做的是取字符串,如果那里有与正则表达式匹配的模式,则将整个“模式”放入变量中。例如,给定以下字符串:

There is a problem with http://jenkins.mycompany.com/job/app/4567. We should fix this.

我想提取http://jenkins.mycompany.com/job/app/4567并为其指定一个变量。我知道我应该使用re,但我不确定我是否需要re.match或re.search以及如何获得我想要的东西。任何帮助或指示将不胜感激。

2 个答案:

答案 0 :(得分:1)

import re
p = re.compile('http://jenkins.mycompany.com/job/[^\s]+')
line = 'There is a problem with http://jenkins.mycompany.com/job/app/4567. We   should fix this.'
result = p.search(line)
print result.group(0)

输出:

http://jenkins.mycompany.com/job/app/4567.

答案 1 :(得分:0)

尝试在字符串中找到第一个找到的匹配项,使用re.findall方法选择第一个匹配项:

re.findall(pattern_string, input_string)[0] # pick the first match that is found