Timothy Adams" <teadams65
3/13/2008 8:23:00 PM
--
-- Andrew
"Arnaud Delobelle" <arnodel@googlemail.com> wrote in message
news:9e9cfd5e-72e6-4033-bc9f-b089ec8fd95c@i29g2000prf.googlegroups.com...
On Mar 13, 8:03 pm, "Andrew Rekdal" <<nospam>@comcast.net> wrote:
> I hope posting is ok here for this question...
>
> I am attempting to extract the text from a CSS comment using 're' such
> as...
>
> string = "/* CSS comment /*"
> exp = "[^(/*)].*[^(*/)] "
>
> p = re.compile(exp)
> q = p.search(string)
> r = q.group()
>
> print r
>
> >>CSS comment
>
> although this works to a degree... I know the within the brackets
> everything
> is taken literally so the pattern
> I am to negating is "(/*)". ie. includes the parenthesis.
>
> So my question is...
>
> Is there a way to negate a pattern that is more than on character long?
> eg.
> where rather than saying if forward slash OR astrisk appear..negate.
>
> I would be saying if parenthesis AND asterisk appear in this order...
> negate
>
> -- Andrew
There would be many ways to do this. One:
>>> import re
>>> r = re.compile(r'/\*(.*?)\*/')
>>> tst = '.a { color: 0xAACC66; /* Fav color */ }'
>>> m = r.search(tst)
>>> m.group(1)
' Fav color '
>>>
HTH
--
Arnaud
Arnaud,
in your expression above..
>>> r = re.compile(r'/\*(.*?)\*/')
what does the 'r' do?
-- andrew