Perl:在解析匹配regexp的实例的文本并将它们全部放到大量之后,每个条目都有额外的char

时间:2014-09-18 08:50:08

标签: regex perl

我正在尝试从网站上获取所有匹配我的正则表达式的文本实例(我知道正则表达式因为某些原因解析html不好,但我需要的只是几行)除了&gt之前的相同内容;。所以,我基本上要注意XXXX-XXXX-XXXX-XXXX,而不是> XXXX-XXXX-XXXX-XXXX。

my $ua = Mojo::UserAgent->new;
my $perl_page = $ua->get('http://blablabla')->res->dom;

my @results = ($perl_page =~ /[^>][\S]{4}-[\S]{4}-[\S]{4}-[\S]{4}/g);

这会忽略> XXXX-XXXX-XXXX-XXXX并仅写入XXXX-XXXX-XXXX-XXXX的实例,但大量的条目现在包含>他们自己!即,这个脚本找到所有XXXX-XXXX-XXXX-XXXX并将它们放入大量的>在每个之前,所以打印@codes给出类似> XXXX-XXXX-XXXX-XXXX> XXXX-XXXX-XXXX-XXXX> XXXX-XXXX-XXXX-XXXX。

为什么以及如何解决这个问题?感谢。

现在,我是perl中的一个总菜鸟,所以这可能听起来很愚蠢,但就在这里。

1 个答案:

答案 0 :(得分:0)

如果这不是拼写错误,[^>]不会做你想要的。你需要消极的后视,

/(?<! &gt;) \S{4}-\S{4}-\S{4}-\S{4} /xg