On 11 Juni, 10:25, Chris <[EMAIL PROTECTED]> wrote: > On Jun 11, 6:20 am, cirfu <[EMAIL PROTECTED]> wrote: > > > pat = re.compile("(\w* *)*") > > this matches all sentences. > > if fed the string "are you crazy? i am" it will return "are you > > crazy". > > > i want to find a in a big string a sentence containing Zlatan > > Ibrahimovic and some other text. > > ie return the first sentence containing the name Zlatan Ibrahimovic. > > > patzln = re.compile("(\w* *)* zlatan ibrahimovic (\w* *)*") > > should do this according to regexcoach but it seems to send my > > computer into 100%CPU-power and not closable. > > Maybe something like this would be of use... > > def sentence_locator(s, sub): > cnt = s.upper().count(sub.upper()) > if not cnt: > return None > tmp = [] > idx = -1 > while cnt: > idx = s.upper().find(sub.upper(), (idx+1)) > a = -1 > while True: > b = s.find('.', (a+1), idx) > if b == -1: > b = s.find('.', idx) > if b == -1: > tmp.append(s[a+1:]) > break > tmp.append(s[a+1:b+1]) > break > a = b > cnt -= 1 > return tmp
yes, seems very unpythonic though :) must be a simpler way that isnt slow as hell. -- http://mail.python.org/mailman/listinfo/python-list