regexp matching end of line or comma

Saul Spatz saul.spatz at gmail.com
Thu Nov 25 13:32:17 EST 2010


On Nov 25, 8:40 am, Jean-Michel Pichavant <jeanmic... at sequans.com>
wrote:
> Hy guys,
>
> I'm struggling matching patterns ending with a comma ',' or an end of
> line '$'.
>
> import re
>
> ex1 = 'sumthin,'
> ex2 = 'sumthin'
> m1 = re.match('(?P<something>\S+),', ex1)
> m2 = re.match('(?P<something>\S+)$', ex2)
> m3 = re.match('(?P<something>\S+)[,$]', ex1)
> m4 = re.match('(?P<something>\S+)[,$]', ex2)
>
> print m1, m2
> print m3
> print m4
>
> <_sre.SRE_Match object at 0x8834de0> <_sre.SRE_Match object at 0x8834e20>
> <_sre.SRE_Match object at 0x8834e60>
> None
>
> My problem is that m4 is None while I'd like it to match ex2.
>
> Any clue ?
>
> JM

>From the Regular Expression Syntax documentation:
Special characters are not active inside sets. For example, [akm$]
will match any of the characters 'a', 'k', 'm', or '$';

so in m4, [,$] matches a comma or a literal dollar sign.



More information about the Python-list mailing list