Perl コードから easycode を削除するための正規表現が必要です。
この正規表現を使用していますが、これは正しくありません
$message =~ s/<.+?>|&[a-z]+;|\[.+?\]/ /g;
この正規表現は、間にあるすべてのコードを削除しています[.+?\]
。
誰か助けてくれる人がいたら教えてください
#!/usr/bin/perl
use strict;
use warnings;
my @test = ("[ nikon 400]", "[ nikon \$400 ]", "[quick_sort]", "[CODE]", "[QUOTE]", "[OTHER STUFF]", "[ test123!%&/(){} ]");
foreach my $line (@test){
$line =~ s/<.+?>|&[a-z]+;|\[[A-Z]+\]/ /g;
print "$line\n"
};
出力:
[ nikon 400]
[ nikon $400 ]
[quick_sort]
[OTHER STUFF]
[ test123!%&/(){} ]
これが本当にあなたが探しているものだと思います。複数のエントリを結合しますか[]
like[quick sort]
は に変更され[quick_sort]
ますか? これは大きな問題ではないでしょう。ただし、貪欲な獣だけでなく、適切な正規表現を構築できるように、テキストに関する追加情報 (括弧内) を提供する必要があります。