Как преобразовать строки HTTP в URL-адреса, а также разрешить форматирование в текстильном стиле без конфликтов?
Я создаю минимальную версию процесса преобразования текста в разметку, очень похожую на Textile. Я успешно преобразовал полужирный, курсив, зачеркнутый текст (с *, _ и - соответственно), но я также использую следующее выражение для автоматического преобразования строк HTTP в ссылки:
/([^\(])(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.\-]*(\?\S+)?)?)?)/
Проблема в том, что если строка HTTP содержит, например, тире, выражение для зачеркивания (/\-([^\*]+?)\-/
), что приводит к изменению URL-ссылки:
site.com/path-with-dashes
в site.com/path<del>with</del>dashes
Каково лучшее решение для достижения обоих процессов вместе? Я бы предположил, что смена зачеркнутого выражения, требующего, чтобы символ перед чертой был пробелом или началом строки, сработал бы, но я не могу добиться этого в одном выражении.