Hi 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" I am very confused. Shouldnt the \d{4,} match exactly four digit numbers so a 5 digit number sentence should not be matched . Here is my test program output and the test given below Thanks for your help Harijay PyMate r8111 running Python 2.5.1 (/usr/bin/python) >>> testdigit.py Matched I have 2004 rupees Matched I have 3324234 and more Matched As 3233 Matched 2323423414 is good Matched 4444 dc sav 2412441 asdf SKIPPED random1341also and also SKIPPED SKIPPED 13 Matched a 1331 saves SKIPPED and and as dad SKIPPED A has 13123123 SKIPPED A 13123 SKIPPED 123 adn Matched 1312 times I have told you DONE #!/usr/bin/python import re x = [" I have 2004 rupees "," I have 3324234 and more" , " As 3233 " , "2323423414 is good","4444 dc sav 2412441 asdf " , "random1341also and also" ,"","13"," a 1331 saves" ," and and as dad"," A has 13123123"," A 13123","123 adn","1312 times I have told you"] p = re.compile(r'\d{4} ') for elem in x: if re.search(p,elem): print "Matched " + elem else: print "SKIPPED " + elem print "DONE" -- http://mail.python.org/mailman/listinfo/python-list