Bruce Momjian wrote:
> David Fetter wrote:
> > On Mon, Jun 06, 2005 at 12:02:18PM -0400, Bruce Momjian wrote:
> > >
> > > Patch removed because we already have this functionality.
> >
> > We don't yet have this functionality, as the patch allows for using
> > second and later regex matches "()" in the replacement pattern.
> >
> > The function is misnamed.  It should be called regex_replace_all() or
> > some such, as it violates the principle of least astonishment by
> > replacing all instances by default.  Every other regex replacement
> > defaults to "replace first," not "replace all."  Or maybe it should
> > take a bool for "replace all," or...?  Anyhow, it's worth a discussion
> > :)
> Does anyone want to argue that this additional functionality is
> significant and deserves its own function or an additional argument to
> the existing function?

Oracle10g has a similar functionality. The name is regexp_replace.
There is the following usages in this functionality.
- Format the ZIP code and the telephone number, etc.
   Example: select regexp_replace('1112223333', '(\\d{3})(\\d{3})(\\d{4})',
                                  '(\\1) \\2-\\3');
            result: (111) 222-3333
- Delete an unnecessary white space.
   Example: select regexp_replace('A     B     C', '\\s+', ' ');
            result: A B C

I think that the usage increases if "replace all" or "replace first" can be
specified to this function.


Atsushi Ogawa

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to