>> I am a few months new into python. I have used regexps before in perl >> and java but am a little confused with this problem.
>> I want to parse a number of strings and extract only those that >> contain a 4 digit number anywhere inside a string >> However the regexp >> p = re.compile(r'\d{4}') >> Matches even sentences that have longer than 4 numbers inside strings >> ..for example it matches "I have 3324234 and more" Try this instead: >>> pat = re.compile(r"(?<!\d)(\d{4})(?!\d)")>>> for s in x: ... m = pat.search(s) ... print repr(s), ... print (m is not None) and "matches" or "does not match" ... ' I have 2004 rupees ' matches ' I have 3324234 and more' does not match ' As 3233 ' matches '2323423414 is good' does not match '4444 dc sav 2412441 asdf ' matches 'random1341also and also' matches '' does not match '13' does not match ' a 1331 saves' matches ' and and as dad' does not match ' A has 13123123' does not match 'A 13123' does not match '123 adn' does not match '1312 times I have told you' matches -- Skip Montanaro - [EMAIL PROTECTED] - http://smontanaro.dyndns.org/ -- http://mail.python.org/mailman/listinfo/python-list