xml ファイルで明らかなエラーを探す単純なスクリプトを perl で作成しようとしています。これを達成する最善の方法は、正規表現を作成し、perl にそれを使用させて xml の不正な行を返すことだと考えました。これが私のコードです
#!/usr/bin/perl
$file = '/path/to/my/xml/file.txt';
open(txt, $file);
while($line = <txt>) {
print "$line" if $line =~ m/<[a-zA-Z]*>[$a-zA-Z0-9]*>[a-zA-Z0-9]*</;
}
close(txt);
私が使用している正規表現は、notepad++ では完全に機能しますが、perl に入れると機能しなくなります。このようなxmlの行を見つけようとしています
<tag>badline></tag>
バラバラにすると、正規表現の行が返されます。
m/<[a-zA-Z]*> -works
[$a-zA-Z0-9]*> -works
[a-zA-Z0-9]*</; -works
しかし、コードで示したようにそれらを組み合わせると、そうではありません
どんな助けでも大歓迎です、ありがとう。