Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 23276

Getting captured group in one line

$
0
0

There is a known "pattern" to get the captured group value or an empty string if no match:

match = re.search('regex', 'text')if match:    value = match.group(1)else:    value = ""

or:

match = re.search('regex', 'text')value = match.group(1) if match else ''

Is there a simple and pythonic way to do this in one line?

In other words, can I provide a default for a capturing group in case it's not found?


For example, I need to extract all alphanumeric characters (and _) from the text after the key= string:

>>> import re>>> PATTERN = re.compile('key=(\w+)')>>> def find_text(text):...     match = PATTERN.search(text)...     return match.group(1) if match else ''... >>> find_text('foo=bar,key=value,beer=pub')'value'>>> find_text('no match here')''

Is it possible for find_text() to be a one-liner?

It is just an example, I'm looking for a generic approach.


Viewing all articles
Browse latest Browse all 23276

Trending Articles



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