On Nov 6, 11:07 am, "J. Clifford Dyer" <[EMAIL PROTECTED]> wrote: > On Tue, Nov 06, 2007 at 08:49:33AM -0800, [EMAIL PROTECTED] wrote regarding > regular expressions: > > > > > hi i am looking for pattern in regular expreesion that replaces > > anything starting with and betweeen http:// until / > > likehttp://www.start.com/startservice/yellow/fdhttp://helo/abcdwill > > be replaced as > > p/startservice/yellow/ fdp/abcd > > You don't need regular expressions to do that. Look into the methods that > strings have. Look at slicing. Look at len. Keep your code readable for > future generations. > > Py>>> help(str) > Py>>> dir(str) > Py>>> help(str.startswith) > > Cheers, > Cliff
Look again at the sample input. Some of the OP's replacement targets are not at the beginning of a word, so str.startswith wont be much help. Here are 2 solutions, one using re, one using pyparsing. -- Paul instr = """ anything starting with and betweeen "http://" until "/" like http://www.start.com/startservice/yellow/ fdhttp://helo/abcd will be replaced as """ REPLACE_STRING = "p" # an re solution import re print re.sub("http://[^/]*", REPLACE_STRING, instr) # a pyparsing solution - with handling of target strings inside quotes from pyparsing import SkipTo, replaceWith, quotedString replPattern = "http://" + SkipTo("/") replPattern.setParseAction( replaceWith(REPLACE_STRING) ) replPattern.ignore(quotedString) print replPattern.transformString(instr) Prints: anything starting with and betweeen "p/" like p/startservice/yellow/ fdp/abcd will be replaced as anything starting with and betweeen "http://" until "/" like p/startservice/yellow/ fdp/abcd will be replaced as -- http://mail.python.org/mailman/listinfo/python-list