3

目前,一个先前回答的问题让我在 find 中留下了这个正则表达式:

^.+(\?|&)v=([a-zA-Z0-9]+).*$

以此作为替换

hxxp://www.youtube.com/v/$1

我想转换

hxxp://www.youtube.com/?watch="YoutubeID" 

Youtube.com/v/youtubeID. 

在这种情况下,当前的正则表达式会失败。

http://www.youtube.com/watch?v=67-YcLickUA

当它返回时

...v=67,而不是完整的 VideoID。

4

1 回答 1

1
use strict;
use warnings;

my $string = 'http://www.youtube.com/watch?v=67-YcLickUA';

$string =~ s(.+watch\?v=([0-9a-zA-Z-]+))(Youtube.com/v/$1);

print "$string\n";

这是一个非常基本的替代品,但是由于我不知道上下文等,您想在其中使用它似乎暂时就足够了。如果您需要更复杂的东西,请告诉我。

于 2011-01-04T09:32:30.950 回答