darksideofthesun
darksideofthesun

Reputation: 621

Extract string using regex in Python

I'm struggling a bit on how to extract (i.e. assign to variable) a string based on a regex. I have the regex worked out -- I tested on regexpal. But I'm lost on how I actually implement that in Python. My regex string is:

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

What I want to do is take string and if there's a pattern in there that matches the regex, put that entire "pattern" into a variable. So for example, given the following string:

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

I want to extract http://jenkins.mycompany.com/job/app/4567and assign it a variable. I know I'm supposed to use re but I'm not sure if I want re.match or re.search and how to get what I want. Any help or pointers would be greatly appreciated.

Upvotes: 0

Views: 107

Answers (2)

David
David

Reputation: 6571

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)

Output:

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

Upvotes: 1

Malik Brahimi
Malik Brahimi

Reputation: 16711

Try the first found match in the string, using the re.findall method to select the first match:

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

Upvotes: 0

Related Questions