我正在尝试从网站上获取所有匹配我的正则表达式的文本实例(我知道正则表达式因为某些原因解析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中的一个总菜鸟,所以这可能听起来很愚蠢,但就在这里。
答案 0 :(得分:0)
如果这不是拼写错误,[^>]
不会做你想要的。你需要消极的后视,
/(?<! >) \S{4}-\S{4}-\S{4}-\S{4} /xg