Quantcast
Viewing all articles
Browse latest Browse all 12

Answer by chiceman for Python extract pattern matches

It seems like you're actually trying to extract a name vice simply find a match. If this is the case, having span indexes for your match is helpful and I'd recommend using re.finditer. As a shortcut, you know the name part of your regex is length 5 and the is valid is length 9, so you can slice the matching text to extract the name.

Note - In your example, it looks like s is string with line breaks, so that's what's assumed below.

## covert s to list of strings separated by line:s2 = s.splitlines()## find matches by line: for i, j in enumerate(s2):    matches = re.finditer("name (.*) is valid", j)    ## ignore lines without a match    if matches:        ## loop through match group elements        for k in matches:            ## get text            match_txt = k.group(0)            ## get line span            match_span = k.span(0)            ## extract username            my_user_name = match_txt[5:-9]            ## compare with original text            print(f'Extracted Username: {my_user_name} - found on line {i}')            print('Match Text:', match_txt)

Viewing all articles
Browse latest Browse all 12

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>