Name
findall
Synopsis
r
.findall(s
)
When r
has no groups,
findall
returns a list of strings, each a
substring of s
that is a non-overlapping
match with r
. For example,
here’s how to print out all words in a file, one per
line:
import re reword = re.compile(r'\w+') for aword in reword.findall(open('afile.txt').read( )): print aword
When r
has one group,
findall
also returns a list of strings, but each
is the substring of s
matching
r
’s group. For example,
if you want to print only words that are followed by whitespace (not
punctuation), you need to change only one statement in the previous
example:
reword = re.compile('(\w+)\s')
When r
has n
groups (where n
is greater than
1
), findall
returns a list of
tuples, one per non-overlapping match with
r
. Each tuple has
n
items, one per group of
r
, the substring of
s
matching the group. For example,
here’s how to print the first and last word of each
line that has at least two words:
import re first_last = re.compile(r'^\W*(\w+)\b.*\b(\w+)\W*$', re.MULTILINE) for first, last in \ first_last.findall(open('afile.txt').read( )): print first, last
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.