See also Common Sequence Operations.
s = "counterclockwise" if "clock" in s: print(f'"{s}" contains "clock".') #double quotes in a single quoted string literal else: print(f'"{s}" does not contain "clock".')
"counterclockwise" contains "clock".
See also
rindex
.
s = "counterclockwise" try: #EAFP i = s.index("clock") print(f'"{s}" contains "clock" at index {i}.') except ValueError as error: print(f'"{s}" does not contain "clock": {error}.')
"counterclockwise" contains "clock" at index 7.
"counterclockwise" does not contain "dock": substring not found.
See also
rfind
.
find
and
rfind
are the same as
index
and
rindex
except that the former indicate failure by returning a negative number,
while the latter indicate failure by raising the
ValueError
exception.
s = "counterclockwise" i = s.find("clock") if i >= 0: #LBYL print(f'"{s}" contains "clock" at index {i}.') else: print(f'"{s}" does not contain "clock".')
"counterclockwise" contains "clock" at index 7.
See parentheses and vertical bars.
""" Search for a regular expression in a string. """ import sys import re s = "He is the most prochoice candidate." regularExpression = "(pro|anti)(choice|life|abortion)" #6 possibilities try: m = re.search(regularExpression, s) #m is a Match object. except re.error as error: print(error, file = sys.stderr) sys.exit(1) if m: print(f'Found "{m.group()}" at index {m.start()}.') else: print("no match") sys.exit(0)
Found "prochoice" at index 15.
What happens if you change the regular expression to one of the following?
regularExpression = "pro|antichoice|life|abortion" #removed the two pairs of parentheses regularExpression = "pro|anti(choice|life|abortion)" #removed one pair of parentheses regularExpression = "(pro|anti)(choice|life|abortion)(" #added one extra parenthesis