さて、私はナッツを動かす問題があります。perlで正規表現を使って部分文字列を抽出する
($var) = $data =~ m/regex/;
は、それが働いていますが、返された「string」は本当のSUBSTRと全く同じではありません。私は、正規表現使って部分文字列を抽出しようとしています。文字列を表示することは実際のsubstrのように見えますが、if($ var eq "substr")でチェックするとtrueが返されません。私はまた、$ var。= ".."で終わりに何かを追加しようとすると気づいた。私は($ varが "こんにちは"の場合) "..llo"を取得します。
これは何を返すのですか?
違いがある場合は、Linuxでこれを実行しています。私はそうは思わないだろうが、この同じコードは私のためにWindowsで動作します。あなたが特定のコードを提供する必要があります
$datatxt contains
..
udir=/home/me/
..
use File::Read;
my $data = read_file({skip_comments => 1}, $datatxt);
($udir) = $data =~ m/udir=(.*)/;
print $udir; #prints /home/me/
print ".".$udir."."; #prints ..home/me/
if ($udir ne "/home/me/") {
print "not equal"; #prints...
}
正規表現にグループがありますか? – Cameron
あなたはミックスのどこかでそれを引き起こしている '\ r'を持っています。 ( 'print" hello \ r .. \ n ";'を実行して結果を確認してください)。 Windowsと\ * nixは異なるEOLを使用します - 特に、\ * nixは '\ r'を使用しません。実際の例を投稿する*場合、追加の洞察力を提供することができます。 –
オハイオ州は多くの意味があります。私は私のWindowsパーティションから読み込まれているデータファイルをコピーしました。どうもありがとう。 – user1126345