re.findall

W

Will Stuyvesant

A question about the findall function in the re module, and I also
would be happy with pointers to online documentation with which I
could have found a solution myself (if it even exists!).

I have this program and result:

-------------- program ------------------
import re

pat = r'(.*) or (.*)'
r = re.findall(pat, "i or j or k")
print r
-------------- result -------------------
[('i or j', 'k')]
-------------------------------------------

But the result I want is this:
[('i', 'j or k'), ('i or j', 'k')]

So my regular expression is wrong, but also variations like
r'^(.*|.*?) or (.*|.*?)$' do not work. I have the feeling I am
overlooking something simple. Maybe I should not try to use
re.findall to get the desired result, but do a re.match in a
while-loop?

Stated in English the problem is this: give me all combinations of
strings left and right of r' or ', and return them as a list of
tuples. Sure I can solve this without using the re module, using
while-loops and string.search etc., but I also have variations of
this problem and learning re seems useful.
 
M

Matthias Huening

(e-mail address removed) (Will Stuyvesant) wrote in
A question about the findall function in the re module, and I also
would be happy with pointers to online documentation with which I
could have found a solution myself (if it even exists!).

The problem is that the strings you want to find are overlapping.
This should get you started:

import re

s = "i or j or k or grr"
pat = re.compile(r'\w+ or \w+')

startposition = 0
while 1:
res = pat.search(s, startposition)
if res == None:
break
startposition = res.start() + 1
print res.group()


Matthias
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,745
Messages
2,569,487
Members
44,909
Latest member
DestinyKetoScam

Latest Threads

Top