Marcio Lino
Marcio Lino

Reputation: 391

Remove specifc characters from string (REGEX)

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

Answers (1)

norie
norie

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

Related Questions