Regex 如何在<;之间grep文本和数字&燃气轮机;括号
我是Perl新手,不知道您能否帮我查询一下 我试图从一个文本文件中找出括号中的文本和数字的精确序列 代码如下:Regex 如何在<;之间grep文本和数字&燃气轮机;括号,regex,perl,grep,Regex,Perl,Grep,我是Perl新手,不知道您能否帮我查询一下 我试图从一个文本文件中找出括号中的文本和数字的精确序列 代码如下: open (FILE1, "file.txt") or die ("Error: File cannot be found"); @file1 = <FILE1>; @file2 = join(' ', @file1); my @grabJustTheHVSection = grep { $_ =~ /\<HV\>.*\<\\HV\>/s} @
open (FILE1, "file.txt") or die ("Error: File cannot be found");
@file1 = <FILE1>;
@file2 = join(' ', @file1);
my @grabJustTheHVSection = grep { $_ =~ /\<HV\>.*\<\\HV\>/s} @file2;
close(FILE);
open(FILE1,“file.txt”)或die(“错误:找不到文件”);
@file1=;
@file2=join(“”,@file1);
my@grabjusthehvsection=grep{$\u=~/\.\.\/s}@file2;
关闭(文件);
我希望数组@grabjusthehv节仅包含file1.txt中的以下内容:
00000000 00000010 00000100 00001000 00000000 00100000 00000000 00000010 00000100 00001000 00000000 00100000 更多示例代码:
@file2 = join('', @file1);
my @replace = grep { $_ =~ /\<HV>/g } @file2;
foreach $_ (@replace){
if($_ !~ m/.PDT>/g){
s /<HV>/<PDT>/g;
s /<\\HV>/<\\PDT>/g;
(print NEW $_) or die "Cant write to $new: $!";
}
@file2=join(“”,@file1);
my@replace=grep{$\u=~/\/g}@file2;
foreach$(@replace){
如果($\!~m/.PDT>/g){
s///g;
s///g;
(打印新美元)或“无法写入新美元:$!”;
}
谢谢如果这是某种标记语言,您可能应该改用解析器。
中的“反向”反斜杠似乎表示其他内容,但可能是打字错误
无论如何,您可以使用。要点是,在两个条件之间,触发器返回true,否则返回false
use strict;
use warnings;
use Data::Dumper;
chomp(my @file = <DATA>);
my @HV = grep /<HV>/ .. /<\\HV>/, @file;
print Dumper \@HV;
__DATA__
foo
<HV>
00000000 00000010 00000100 00001000 00000000 00100000
00000000 00000010 00000100 00001000 00000000 00100000
<\HV>
bar
使用严格;
使用警告;
使用数据::转储程序;
chomp(my@file=);
我的@HV=grep/../、@file;
打印转储\@HV;
__资料__
福
00000000 00000010 00000100 00001000 00000000 00100000
00000000 00000010 00000100 00001000 00000000 00100000
酒吧
输出:
$VAR1 = [
'<HV>',
'00000000 00000010 00000100 00001000 00000000 00100000',
'00000000 00000010 00000100 00001000 00000000 00100000',
'<\\HV>'
];
$VAR1=[
'',
'00000000 00000010 00000100 00001000 00000000 00100000',
'00000000 00000010 00000100 00001000 00000000 00100000',
''
];
缺少使用警告;使用严格;
。使用词汇变量,而不是裸字文件句柄。使用3-arg打开,而不是2-arg打开。在错误消息中包括$!
和文件名。不要无故使用全局变量。$。
是多余的。
不需要转义。不要“解析”带有正则表达式的XML。欢迎使用SO和Perl。始终使用use strict;使用warnings;
请发布您收到的错误。join
返回字符串;将其存储在数组中没有意义。类似地,单个字符串上的grep
也没有意义:它将返回该字符串(如果匹配的话),或什么都没有。为什么要将结果存储在数组中?元素是什么?是否确实希望
包含反斜杠,而不是X/HTML样式的正斜杠
?