Мне кажется такую задачу не решить одним действием.
Я бы ее решал так.
1. Найти все обернутые ссылки, вырезать их и запомнить в массиве, а на место ссылок вставить метки, ассоциированную с индексами в массиве.
2. Найти все оставшиеся ссылки (т.е. не обернутые) и их обернуть.
3. Вставить из массивы вырезанные ранее ссылки.
Вот и все.
Считаю, что необходимо обратить на следующие особенности.
а) будут ли в исходном тексте комментарии, в которых могут встречаться ссылки, и что в этом случае нужно делать.
б) обратить внимание на то, что ссылки могут встречаться, как в кавычках, так и в апострофах (это относится скорее всего к обернутым ссылкам).
|