-1

Perl コードから easycode を削除するための正規表現が必要です。

この正規表現を使用していますが、これは正しくありません

$message =~ s/<.+?>|&[a-z]+;|\[.+?\]/ /g;

この正規表現は、間にあるすべてのコードを削除しています[.+?\]

誰か助けてくれる人がいたら教えてください

4

2 に答える 2

0
#!/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]ますか? これは大きな問題ではないでしょう。ただし、貪欲な獣だけでなく、適切な正規表現を構築できるように、テキストに関する追加情報 (括弧内) を提供する必要があります。

于 2013-09-05T09:56:47.710 に答える