src
で始まらないすべての属性を一致させようとしていますhttp
。
質問する
122 次
3 に答える
2
それは「not」演算子ではありません。それが「行頭」のアンカー文字です。
s!^(?!http)/?!$PATH_BLAH/!
あなたが探しているもののようなものかもしれません。
于 2012-06-28T15:26:45.213 に答える
2
URI を絶対 URI に解決したい。堅牢な HTML パーサーを使用する:
use strictures;
use URI qw();
use Web::Query 'wq';
my $PATH_BLAH = 'http://example.com/blah/';
my $html = <<'HTML';
<html><head></head><body>
<img src="../relative-link" />
<img src="yup/another/one" />
<img src="/oh/I/start/with/a/slash" />
<img src="http://example.net/absolute-link" />
</body></html>
HTML
my $w = wq $html;
$w->find('*[src]')->each(sub {
my (undef, $e) = @_;
$e->attr('src', URI->new_abs($e->attr('src'), $PATH_BLAH));
});
print $w->html;
__END__
<html><head></head><body>
<img src="http://example.com/relative-link" />
<img src="http://example.com/blah/yup/another/one" />
<img src="http://example.com/blah/oh/I/start/with/a/slash" />
<img src="http://example.net/absolute-link" />
</body></html>
于 2012-06-28T15:37:59.763 に答える
0
それはPerlではありません。正規表現だと思いますか?そして、あなたは「http」を含まない文字を一致させようとしていると思いますか?もしそうなら、あなたはしたい
(?:(?!http).)*
(?:(?!STRING).)
その(?:STRING)
ままに[^CHAR]
。CHAR
于 2012-06-28T19:38:12.513 に答える