Regex question

Eric Arnold umop at psyon.org
Wed Sep 18 17:34:09 EDT 2002


Okay, I have it down to:

(?<eventName>.*):(?<eventParam>[^,]*(,|$))+

which almost works ...

 <eventName>: "Name"
 <eventParam 1>: "AAA"
 <eventParam 2>: "BBB"
 <eventParam 3>: "CCC"
 <eventParam 4>: ""

it's picking up the <eventParam4> on the last character (right after "C")
and it's an empty string.  Shouldn't "CCC" (as captured with the $ end of
string as a delimiter) be the last thing found?

Eric

"Eric Arnold" <umop at psyon.org> wrote in message
news:amapuf$45t8t$1 at ID-144898.news.dfncis.de...
> Hi folks,
>
> I'm trying to figure out why this is not working, and wonder if there are
> any regexperts out there who can give me a pointer.
>
> The string I'm capturing is as follows:
>
> Name:AAA,BBB,CCC
>
> where I'd like to extract the following data:
>
> <eventName>: Name
> <eventParam 1>: AAA
> <eventParam 2>: BBB
> <eventParam 3>: CCC
>
> this is the regular expression I wrote to do so:
>
> (?<eventName>.*):(?<eventParam>([^,]*(?=,))|((?<=,)[^,]*))+
>
> I tried it with the (?<=,) as another (?=,) too, but no luck.  I imagine
> that the problem is that when the (?=) is used once, it can't be used with
> the second group, but I don't know a way around that.
>
> Thanks!
>
> Eric
>
>





More information about the Python-list mailing list