Reputation: 391
I'm trying to get part of a string that is between parenthesis followed by four digits using REGEX like this:
data = "lorem ipsum lorem lorem ipsum ipsum lot lorem lot ipsum (2020/4568921-0) gfdgf"
def func_proc(line):
nr = ''.join(map(str, (re.findall(r"\([0-9]{4}.*?\)", line))))
if not nr:
return 0
else:
return nr
print(func_proc(data))
I'm getting "(2020/4568921-0)" as the result instead of the needed "2020/4568921-0".
Thanks!
Upvotes: 0
Views: 39
Reputation: 9867
This will return the string between the ().
import re
data = "lorem ipsum lorem lorem ipsum ipsum lot lorem lot ipsum (2020/4568921-0) gfdgf"
def func_proc(line):
nr = ''.join(map(str, re.findall(r"\(([0-9]{4}.*?)\)", line)))
if not nr:
return 0
else:
return nr
print(func_proc(data))
If there are multiple results then you can return the first like this.
import re
data = "lorem ipsum lorem lorem ipsum ipsum lot lorem lot ipsum (2020/4568921-0) gfdgf (2020/4568921-0)"
def func_proc(line):
nr =re.findall(r"\(([0-9]{4}.*?)\)", line)
if not nr:
return 0
else:
return nr[0]
print(func_proc(data))
Upvotes: 2