Как я могу получить данные между тегами в Perl? - PullRequest
0 голосов
/ 20 сентября 2010

Я разрабатываю Perl-скрипт.

Это моя входная строка в файле new.txt :

<ID>1</ID>
<CLASS>One</CLASS>
<NAME>Saran</NAME>

Это мой код, который простопечатает три строки:

#!/usr/bin/perl 
open(FILEHANDLE1,"new.txt") or die "Can't Open: $!\n";
while($line=<FILEHANDLE1>)
{ 
print "$line";
}
close FILEHANDLE1;

Мне нужно, чтобы отображалось только содержимое между тегами.Выходные данные должны быть:

1 One Saran

Как получить данные между тегами?Есть ли способ с помощью регулярных выражений?

Ответы [ 3 ]

2 голосов
/ 20 сентября 2010

Если ваш входной файл действительно такой, как вы описали, вы можете сделать что-то вроде:

#!/usr/bin/perl 

use warnings;
use strict;
open my $FILEHANDLE1, '<', "new.txt" 
     or die "Can't open file 'new.txt' for reading: $!";
while(my $line=<$FILEHANDLE1>) { 
    chomp $line;
    $line =~ s!^<(\w+)>(\w+)</\1>!$2 !;
    print $line;
}
print "\n";
close $FILEHANDLE1;

Всегда

use strict;

и

use warnings;

Используйте триАрги открыты и лексические ручки.

2 голосов
/ 20 сентября 2010

Что вы пробовали? Какие конкретные проблемы у вас возникают?

Похоже, вы захотите что-то вроде этого:

#!/usr/bin/perl

use strict;
use warnings;

$_ = 'Data1 some text Data2';

if (/Data1(.*)Data2/) {
  print "$1\n";
}

Но ваш вопрос настолько расплывчатый, что трудно быть уверенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...