mr_dont has asked for the wisdom of the Perl Monks concerning the following question:
O.K. Monks, I wrote a script that uses Find::File to recursively parse a directory and change parts of the files it finds using a reg/ex. I got some strange (at least to me) results from one particular substitution:
The guts of this substitution look like this:
$matchtext = "http://www.foo.bar/somepage.pl?"; $substitutetext = "http://www.new.site/somenewpage?"; s/$matchtext/$substitutetext/;
This code was giving me this result:
http://www.foo.bar/somepage.pl? was becoming
http://www.new.site/somenewpage.pl?? #note: 2 "?"'s
Oh yeah, I thought, i forgot about the "?" modifier for reg/ex. So I reran my script with this...
$matchtext = "http://www.new.site/somenewpage.pl\?\?"; $substitutetext = "http://www.new.site/somenewpage.pl\?"; s/$matchtext/$substitutetext/;
...thinking that I would simply escape out the "?" character.
After running this script, the orignal string:
http://www.new.site/somenewpage.pl?
turned into:
http://www.new.site/somenewpage.pl??l??
So, I am not sure why I am getting foo.pl??l?? after the regex substitution. Also, any suggestions on how to change my blah.pl??l?? back into blah.pl?
Thanks Monks!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Regular Expressions and Question Marks
by rbc (Curate) on Mar 13, 2002 at 23:44 UTC | |
by mr_dont (Beadle) on Mar 14, 2002 at 00:00 UTC | |
|
Re: Regular Expressions and Question Marks
by tadman (Prior) on Mar 13, 2002 at 23:40 UTC | |
|
Re: Regular Expressions and Question Marks
by artist (Parson) on Mar 13, 2002 at 23:18 UTC | |
by TGI (Parson) on Mar 14, 2002 at 00:05 UTC | |
|
Re: Regular Expressions and Question Marks
by TGI (Parson) on Mar 13, 2002 at 23:52 UTC |