Как насчет чего-то вроде:
/http:\/\/rapidshare.com\/files\/\d+\/[^<&\s]+\.\w{3,4}/
Я избавился от групп захвата, потому что я думаю, что они были там только потому, что вы думали, что они могут понадобиться вам, чтобы убедиться, что разные группы работают, и вы можете добавить их обратно, если вы действительно хотите, чтобы они были проанализированы.
Вы можете расширить [^<&"\s]
, поскольку он исключает только пробелы, символ <
, который может быть началом тега, &
, который будет включать такие вещи, как
и другие объекты HTML или "
, который будет концом href=
. но вы можете исключить любой недопустимый символ URI , если хотите. Это должно относиться как к встроенному тексту, так и к тем, которые встроены в href.