Hello Monks,
I can't get a backreference to work properly. It is being replaced by my script as "$1" rather than the capturing group I want to be substituted instead. What (boneheaded no doubt) thing am I doing wrong?
regex.txt contains the line:
([A-Za-z])\.[A-Za-z],$1
my $file = "regex.txt";
open FILE, "<", $file or die "Can't open $file: $!\n";
while(my $regex=<FILE>){
my @rex = split(/,/,$regex);
chomp($rex[0]); # $rex[0] is set to "([A-Za-z])\.[A-Za-z]"
chomp($rex[1]); # $rex[1] is set to "$1" <--not sure how to ge
+t ([A-Za-z])group from $rex[0] to be set here.
$rrow_test =~ s/$rex[0]/$rex[1]/ig;
} # END while(my $regex=<FILE>)
close FILE;
If I replace $1 in regex.txt with \1, I get the error:
Reference to nonexistent group in regex; marked by <-- HERE in m/\1 <-
+- HERE / at C:\utilities\regexTester.pl line 105, <FILE> line 2.
Thanks.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.