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 -- http://mail.python.org/mailman/listinfo/python-list