in reply to Re^2: Escape special characters for a LaTeX file
in thread Escape special characters for a LaTeX file
I thought $ works on Windows with carriage returns but it seems it doesn't...
It does. The OS-specific line terminator character(s) is/are translated somewhere in Perl's I/O layers to a common \n newline character (which, IIRC, is 0x0a linefeed) — unless you're using binmode or some other form of raw read/write. The following code should execute identically (I believe) under any OS (I'm running this under Windoze 7):
See definition of $ in Regular Expressions - Metacharacters and its general discussion in perlre and perlretut. The match failures are due to the \r stuck in the middle of things.c:\@Work\Perl\monks\marek1703>perl -wMstrict -le "use Data::Dump qw(pp); ;; for my $s (qq{foo\r\n}, qq{foo\r}, qq{foo\n}, qq{foo}) { if ($s =~ /foo$/) { print 'matched: ', pp $s; } else { print 'no match: ', pp $s; } } " no match: "foo\r\n" no match: "foo\r" matched: "foo\n" matched: "foo"
Also consider the following, which I also expect would work the same on any OS (it certainly works under Windows):
use warnings; use strict; while( <DATA> ) { if (/^"([^"]{2,})","(\d)","(.+)"$/) { chomp; my ($one, $two, $three) = ($1, $2, $3); print "matched: ``$_'' ('$one', '$two', '$three') \n"; } else { print "no match: ``$_'' \n"; } } __DATA__ "Sonntag, 26.05.2013 - 13:13:27","0","Lieber Herr % , & text text with + some %special characters" xyzzy "Mittwoch, 05.06.2013 - 18:12:09","0","Besten Dank, & hat prima geklap +pt. {Greetings!}"
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Escape special characters for a LaTeX file
by Anonymous Monk on Dec 14, 2014 at 16:24 UTC | |
by AnomalousMonk (Archbishop) on Dec 14, 2014 at 17:02 UTC |