consider following multiline string:
>> print s shall compare thee summer's day? thou art more lovely , more temperate rough winds shake darling buds of may, , summer's lease hath short date. re.sub() replaces occurrence of and and:
>>> print re.sub("and", "and", s) shall compare thee summer's day? thou art more lovely , more temperate rough winds shake darling buds of may, , summer's lease hath short date. but re.sub() doesn't allow ^ anchoring beginning of line, adding causes no occurrence of and replaced:
>>> print re.sub("^and", "and", s) shall compare thee summer's day? thou art more lovely , more temperate rough winds shake darling buds of may, , summer's lease hath short date. how can use re.sub() start-of-line (^) or end-of-line ($) anchors?
you forgot enable multiline mode.
re.sub("^and", "and", s, flags=re.m)
re.m
re.multilinewhen specified, pattern character
'^'matches @ beginning of string , @ beginning of each line (immediately following each newline); , pattern character'$'matches @ end of string , @ end of each line (immediately preceding each newline). default,'^'matches @ beginning of string, ,'$'@ end of string , before newline (if any) @ end of string.
the flags argument isn't available python older 2.7; in cases can set directly in regular expression so:
re.sub("(?m)^and", "and", s)
Comments
Post a Comment