値のグループを抽出しようとします。この場合、私のLinuxシステムの設定ファイルにallowed_hostsに属するすべてのipsが抽出されます。PERLは設定ファイルから値を抽出します
configApp.cfg
bla bla bla
...
allowed_hosts = 10.121.120.163,10.121.120.164, ips, ips, more ips ...
...
something .
私はすでに、Webページhttp://perlmaven.com/how-to-extract-strings-from-a-file
を読んで、私は私のスクリップでいくつかの問題を持っている: はので、私はこれを持っています。
open(my $file, '<:encoding(UTF-8)', $config_file)
or die "Could not open file '$config_file' $!";
while (my $row = <$file>) {
chomp $row;
my @strings = $row =~ /[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/g;
foreach my $s (@strings){
print "'$s'";
}
}
私は正規表現の表現を助けることができます。ありがとう
HTTP ://www.regexe.com/ 私はいつも私の正規表現をテストするためにこのサイトを使用しています! –
@JReidまた、https://regex101.com/ – PerlDuck
を試してください。中括弧をエスケープする必要はありません。中カッコを使用するときはエスケープする必要はありません(リテラル中括弧を使用する場合にのみエスケープする必要があります。 perl 5では無用ですが、perl 6では必須となります)、正規表現のPerl構文はBRE構文(基本正規表現)とは異なります。 –