How to replace a comma
Lad
python at hope.cz
Mon Dec 18 10:52:17 EST 2006
Nick Craig-Wood wrote:
> Lad <python at hope.cz> wrote:
> > In a text I need to add a blank(space) after a comma but only if
> > there was no blank(space) after the comman If there was a
> > blank(space), no change is made.
> >
> > I think it could be a task for regular expression but can not
> > figure out the correct regular expression.
>
> You can do it with a zero width negative lookahead assertion, eg
>
> >>> import re
> >>> s="One, Two,Three,Four, File"
> >>> re.sub(r",(?!\s)", ", ", s)
> 'One, Two, Three, Four, File'
> >>>
>
> From the help :-
>
> (?!...)
> Matches if ... doesn't match next. This is a negative lookahead
> assertion. For example, Isaac (?!Asimov) will match 'Isaac ' only if
> it's not followed by 'Asimov'
>
> Or in a more straightforward but less efficient and accurate style -
> this matches the next character which gets added back into the string.
>
> >>> re.sub(r",([^\s])", r", \1", s)
> 'One, Two, Three, Four, File'
> >>>
>
> This shows a fundamental difference between the two methods
>
> >>> t = ",,,,,"
> >>> re.sub(r",(?!\s)", ", ", t)
> ', , , , , '
> >>> re.sub(r",([^\s])", r", \1", t)
> ', ,, ,,'
> >>>
Nick,
Thanks a lot.It works GREAT!
La.
More information about the Python-list
mailing list