jakarta-oro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel F. Savarese" <...@savarese.org>
Subject Re: special control characters
Date Tue, 29 Jan 2002 21:04:01 GMT

In message <3C56E49C.22896B2D@Sun.COM>, Michael Davey - Sun UK Support Engineer
 writes:
>I am not sure I understand your response.  Let's ignore \a, \b, \e and
>\v for now.  How does substitute() parse the input string?

"s/foo/bar/" is split up into its components first, taking into account
any escaped delimiters.
  foo is a regular expression, so Perl5Compiler compiles the expression
    if it is not already cached.  Therefore all Perl escapes are handled.
  bar is the replacement string and is therefore not touched by Perl5Compiler.
    If it contains nothing that needs special treatment, it is a handled
    by a StringSubstitution (i.e., a normal Java string included verbatim).
    If it contains something special, it is handled by Perl5Substitution, so
    any group interpolations (e.g., $1, $2) are processed and also the case
    modification escapes (\u\U\e\E).  The case modification escapes used
    to not be handled because they are a part of normal Perl string
    processing and were considered out of scope.  But Mark made a convincing
    argument to include them and provided a patch to boot, so they are now
    handled.

The gist of it is that if you use "\\t" in the replacement string it is
a vanilla Java string and treated as '\' followed by 't', so you would use
"\t" if you really wanted a tab to be substituted.

daniel



--
To unsubscribe, e-mail:   <mailto:oro-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:oro-dev-help@jakarta.apache.org>


Mime
View raw message