Python: How to use RegEx in an if statement? - Stack Overflow
[Python] How to get a RegEx code to grab a Stock Name using the Ticker
Python re.sub() regex to substitute a character with a string except in quotes
Help with RegEx on nested dictionary [Python 3]
Videos
import re
if re.match(regex, content):
blah..
You could also use re.search depending on how you want it to match.
You can run this example:
"""
very nice interface to try regexes: https://regex101.com/
"""
# %%
"""Simple if statement with a regex"""
import re
regex = r"\s*Proof.\s*"
contents = ['Proof.\n', '\nProof.\n']
for content in contents:
assert re.match(regex, content), f'Failed on {content=} with {regex=}'
if re.match(regex, content):
print(content)
if re.search(r'pattern', string):
Simple if-regex example:
if re.search(r'ing\b', "seeking a great perhaps"): # any words end with ing?
print("yes")
Complex if-regex example (pattern check, extract a substring, case insensitive):
search_object = re.search(r'^OUGHT (.*) BE$', "ought to be", flags=re.IGNORECASE)
if search_object:
assert "to" == search_object.group(1) # what's between ought and be?
Notes:
Use
re.search()not re.match. The match method restricts to the start of the string, a confusing convention. If you want that, search explicitly with caret:re.search(r'^...', ...)(Or in re.MULTILINE mode use\A)Use raw string syntax
r'pattern'for the first parameter. Otherwise you would need to double up backslashes, as inre.search('ing\\b', ...)In these examples,
'\\b'orr'\b'is a special sequence meaning word-boundary for regex purposes. Not to be confused with'\b'or'\x08'backspace.re.search()returnsNoneif it doesn't find anything, which is always falsy.re.search()returns a Match object if it finds anything, which is always truthy.even though re.search() returns a Match object (
type(search_object) is re.Match) I have taken to calling the return value asearch_object. I keep returning to my own bloody answer here because I can't remember whether to use match or search. It's search, dammit.a group is what matched inside pattern parentheses.
group numbering starts at 1.
Specs
Tutorial