[Tutor] re and MULTILINE

Kent Johnson kent at kentsjohnson.com
Wed Feb 21 03:15:50 CET 2007


Marilyn Davis wrote:
> Hello Tutors,
>
> I'm trying to get a grip on MULTILINE and I guess I don't have it.
>
> Here's some code:
>
> #!/usr/bin/env python
> import re
>
> def sub_it(mo):
>     return 'xxx'
>
> def test(re_str, data):
>     return re.sub(re_str, sub_it, data, re.MULTILINE)
>   
The fourth argument to re.sub() is a count, not flags. You have to 
compile the regex and pass the MULTILINE flag to the compile, or include 
the flag in the actual regex with *|(?m)|*.

Kent


>         
> if __name__ == '__main__':
>     data = '''Betty Boop:245-836-2837:6937 Ware Road, Milton, PA 93756:9/21/46:43500
> Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
> James Ikeda:834-938-8376:23445 Aster Ave., Allentown, NJ 83745:12/1/38:45000
> '''
>     re_str = r'''(d+)$'''
>     print test(re_str, data)    
>     
>     re_str = r'''(d+)'''
>     print test(re_str, data)
>
> '''
> ./re_test2.py
> Betty Boop:245-836-2837:6937 Ware Road, Milton, PA 93756:9/21/46:43500
> Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
> James Ikeda:834-938-8376:23445 Aster Ave., Allentown, NJ 83745:12/1/38:xxx
>
> Betty Boop:xxx-xxx-xxx:xxx Ware Road, Milton, PA xxx:xxx/xxx/xxx:43500
> Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
> James Ikeda:834-938-8376:23445 Aster Ave., Allentown, NJ 83745:12/1/38:45000
> '''
>
> If I don't anchor it with '$', it gets all the digit-groups in the first line except the last one.  Why not the last one?  Whay not the other lines?
>
> If I do anchor it, it only gets the last group on the last line.  What's up with that?
>
> What I really want, is to mess with each of the last digit-groups on each line.  But I can't find them.
>
> The exercise is from Ellie Quigley's "Perl by Example"
>
> Thank you for any help.
>
> Marilyn Davis
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>   



More information about the Tutor mailing list