[tpm] New Regex question
janes.rob at gmail.com
Sat Oct 27 17:52:28 PDT 2012
sounds a bit muddy ...
just to clarify, what I found to my surprise, is that
$exp =~ s/(\s)$1+/$1/g;
replaces mixed strings of white space with the first character. leading me
to conclude that the first $1 actually is the \s, not the specific
character matched. However, in the second part of the s, the $1 did indeed
give the white space. So the $1 in the context of searching appears to
render as the regex, not the characters matched. While in the context of
replacing, the $1 renders as the actual characters matched, not the regex
hope that makes it clearer.
oh - perl 5.14.2.
On Sat, Oct 27, 2012 at 7:37 PM, Rob Janes <janes.rob at gmail.com> wrote:
> That's what I thought.
> Until I tried it. The second use case does not work with $1.
> Try it.
> On Oct 27, 2012 7:22 PM, "Uri Guttman" <uri at stemsystems.com> wrote:
>> On 10/27/2012 06:57 PM, Rob Janes wrote:
>>> $1 doesn't work.
>>> \1 is the characters matched while $1 is the pattern matched.
>>> It only matters if u want to match pure string.
>> that is wrong. both are only references to a grab which is always a
>> string. you can use \1 in the regex to match what you have previously
>> matched and grabbed. $1 is used in the replacement or after the regex to
>> get what was grabbed. neither contains a regex.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the toronto-pm