Perl は初めてで、ファイルのパスを抽出しようとしています。適切な正規表現で私を助けてください、これは私のコードです:
$string = "D:/EZ-VPN/NKEMSL0-V02.txt------vpnclient server 156.37.253.97";
"D:/EZ-VPN/NKEMSL0-V02.txt"
抽出し"156.37.253.97"
て2つのスカラー変数に保存したい。これらを抽出するための正規表現を提案してください。
前もって感謝します
Perl は初めてで、ファイルのパスを抽出しようとしています。適切な正規表現で私を助けてください、これは私のコードです:
$string = "D:/EZ-VPN/NKEMSL0-V02.txt------vpnclient server 156.37.253.97";
"D:/EZ-VPN/NKEMSL0-V02.txt"
抽出し"156.37.253.97"
て2つのスカラー変数に保存したい。これらを抽出するための正規表現を提案してください。
前もって感謝します
#!/usr/bin/perl
use strict;
my $string = "D:/EZ-VPN/NKEMSL0-V02.txt------vpnclient server 156.37.253.97";
$string =~ m/(.*?)--+.* (\d+\.\d+\.\d+\.\d+)/;
print $1."\n";
print $2."\n";
これはうまくいくはずです。
Perl は、変数内の正規表現の中かっこ (いわゆるキャプチャ グループ) から結果を収集し$1, $2 ... $n
ます。
ファイル名は に$1
あり、IP アドレスは にあり$2
ます。
my ($x, $y) = split /------/, $string;
my ($z) = $y =~ /(\S+)\z/;
6 つの連続したダッシュの文字列を使用して、パスの終わりをマークします。
my($path, $ipaddress) = ($string =~ m/(.*?)------.* (\d+\.\d+\.\d+\.\d+)/);
テスト スクリプト:
#!/usr/bin/env perl
use strict;
use warnings;
my $string = "D:/EZ-VPN/NKEMSL0-V02.txt------vpnclient server 156.37.253.97";
my($path, $ipaddress) = ($string =~ m/(.*?)------.* (\d+\.\d+\.\d+\.\d+)/);
print "path = $path; IP = $ipaddress\n";
出力:
path = D:/EZ-VPN/NKEMSL0-V02.txt; IP = 156.37.253.97