У меня есть текст формы, где есть абзацы текста с URL-адресами. Я хотел бы разобрать строку создания HTML ссылки из URL-адресов и используя следующий текст в качестве описательного текста ссылки т.е.Javascript Regex: match text after pattern
possibly some text here http://www.somewebsite.com/some/path/somepage.html descriptive text which may or may not be present
в
<a href="http://www.somewebsite.com/some/path/somepage.html">descriptive text which may or may not be present</a>
Это SO статьи, JS: Find URLs in Text, Make Links, имеет отношение к тому, что Я пытаюсь сделать, но просто помещает url как текст внутри элемента привязки.
Я успешно соответствуя URL с
var urlRE= new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_][email protected])?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?([^ ])+");
, но не уверен, как выполнить матч впоследствии.
Я наткнулся на это сообщение Regex - Matching text AFTER certain characters который кажется применимым. Я попытался обернуть свой RE в /(?<=my url pattern here).+/
, но получить сообщение об ошибке, что есть недопустимая группа, и это приводит к недействительной RE.
В этой должности J-Law упоминает, что
переменной длина не просмотр назад допускается
Это то, что я пытаюсь сделать?
Поскольку я уже сопоставляю URL-адрес, я чувствую, что могу легко выполнить математику подстроки, чтобы получить желаемые результаты.
Я просто использую это как попытку узнать больше о регулярном выражении.
Благодаря
FYI не только переменные длины не допускаются в большинстве вариантов регулярных выражений * (.NET является исключением из правила здесь) *, JavaScript не поддерживает lookbehinds * вообще *. –
Заметка о вашем регулярном выражении. У него есть требование, чтобы после домена не было пробела. '([^]) +'. Если есть такая вещь, как 'site.XX', она не будет соответствовать. Вы можете изменить его на '([^]) *, и я не думаю, что это будет иметь большое значение. – sln