Решил перетащить записи из старого блога.

Вопрос: как на примере нескольких ссылок автоматически написать регулярное выражение, находящее все подобные ссылки на любой предложенной странице?

Ответ: очень просто.

Для наглядности возьмём ссылки на профайлы в livejournal.com

http://d-e-m-k-a.livejournal.com/profile
http://4nt0nkn.livejournal.com/profile
http://fluteast.livejournal.com/profile
http://v-poroshok.livejournal.com/profile

Думаю хватит.
Первое что мы делаем – это разбиваем все строки по символам, разделяющим любой URL на части – это точка, слэш, знак вопроса (в данном примере отсутствует) и амперсент.

foreach ($data as $k=>$v)
{
       $arr[$k] = preg_split('$[\/\.\?\&\=]$i',$v);
}

Далее переформируем данный массив, так чтоб можно было посмотреть схожесть частей.

$arr1 = array();
foreach ($arr as $k=>$v)
{
      foreach ($v as $k1=>$v1)
      {
            $arr1[$k1][] = $v1;
       }
}

Теперь смотрим одинаковые ли получились куски во всех ссылках, если да, то в регулярку вставляем именно этот кусок, если нет, то кусок должен быть любым набором символов, кроме тех, которыми мы разбивали URLы

$res = "";
foreach ($arr1 as $k=>$v)
{
    $v = array_unique($v);
    if (isset($arr1[$k+1]))
    {
        if (count($v) == 1)
        {
            $res .= $v[0]."[\/\.\?\&\=]";
        }else
        {
            $res .= "[^\/\.\?\&\=]+[\/\.\?\&\=]";
        }
    }else
    {
        if (count($v) == 1)
        {
            $res .= $v[0]."";
        }else
        {
            $res .= "[^\/\.\?\&\=\"\'\s]+";
        }
    }
}

На выходе имеем регулярное выражение:

http:[\/\.\?\&\=][\/\.\?\&\=][^\/\.\?\&\=]+[\/\.\?\&\=]livejournal[\/\.\?\&\=]com[\/\.\?\&\=]profile

Если где-то нужно пояснения в коде, пишите в каментах. Я обязательно отвечу.