我正在尝试在 perl 中创建一个简单的脚本,该脚本将在 xml 文件中查找明显的错误。我认为实现这一点的最佳方法是创建一个正则表达式并让 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);
我正在使用的正则表达式在记事本++中完美运行,但是当我将它放入 perl 时它不想工作。我试图找到一行看起来像这样的 xml
<tag>badline></tag>
如果我分解我的正则表达式行将返回。
m/<[a-zA-Z]*> -works
[$a-zA-Z0-9]*> -works
[a-zA-Z0-9]*</; -works
但是当我像我在代码中显示的那样组合它们时,它并没有
非常感谢任何帮助,谢谢。