電子書籍の厳選無料作品が豊富!

# 正規表現 \s が、\n に、ヒットする。
#
# Windows XP(sp3) ActivePerl
#
# This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread
# (with 9 registered patches, see perl -V for more detail)
#
# Copyright 1987-2010, Larry Wall
#
# Binary build 1204 [294330] provided by ActiveState http://www.ActiveState.com
# Built Feb 9 2011 14:38:22
#
use strict;
use warnings;
use utf8;

my $a = "\n\n";
$a =~ s/\s/aaaaa\n/ig;
print $a;
__END__

[出力結果]
aaaaa
aaaaa

A 回答 (3件)

正規表現式で\sは、スペース、タブ、改行のいずれかを意味します。



(参考)
http://www.site-cooler.com/kwl/perl/8.htm#8-2
    • good
    • 0
この回答へのお礼

マニュアルに、書いてありました。
回答、ありがとうございます。

お礼日時:2011/12/01 03:02

\sは空白文字ですから、もちろん改行コードにもマッチします。


Windowsでしたら、処理の前にchompをしてから処理すれば良いでしょう。
★他のOSで作られたものを処理したり、他のOS上で動作させるときはこれではダメです。
その場合は
s/\x0D?\x0A?$//;
としてください。
    • good
    • 0
この回答へのお礼

空白文字は、スペースだけかと、思っていました。
回答ありがとうございます。

お礼日時:2011/12/01 03:07

質問は何ですか?



とりあえずいっておくと、正規表現の\sが\nにヒットするのは仕様です。
マニュアルにも書いてあります。
    • good
    • 0
この回答へのお礼

マニュアルを、よく読んでいませんでした。
確かに、書いてありました。
回答ありがとうございます。

お礼日時:2011/12/01 03:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!