Dear Most Intelligent Monks:
I have a Perl program that works properly on my ActiveState 5.10.1 Build 1006 (Windows XP) box. I have shown the code and the input/outputs below. It essentially opens a file, goes line by line, and deletes the last comma separated value.
Example of Input Text File:
dog,cat,horse,bird sheep,cow fish,mouse,rat,tiger,lion
Here is the working Perl Program:
#!/usr/bin/perl -w use strict; #!/usr/local/bin/perl open (MYFILE, 'test2.txt'); while (<MYFILE>) { chomp; $_ =~ s/,(?:"[^"\r\n]*"|[^,\r\n]*)$//m; print "$_\n"; } close (MYFILE);
Would result in this output:
dog,cat,horse sheep fish,mouse,rat,tiger
What I need is for the REGEX used in the program copied below:
$_ =~ s/,(?:"[^"\r\n]*"|[^,\r\n]*)$//m;
to use a backslash (i.e. "\") instead of a comma so that this happens:
Input:
dog\cat\horse\bird sheep\cow fish\mouse\rat\tiger\lion
would give me the following Output:
dog\cat\horse sheep fish\mouse\rat\tiger
I have tried putting in =~ s/\\((?:"[^"\r\n]*"|[^,\r\n]*)$//m; and it still does not work.
I do not want to use different modules like Text::CSV_XS or Text::xSV since I am installing this on multiple Windows machines (Yes I know about CAVA, etc) and think that this should be simple to fix my REGEX to make it work with the backslash "\".
As someone completely undeserving, I most humbly beg your kindly assistance.
In reply to Need help with regex by Knoperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |