У меня проблема с обратным соответствием javascript регулярному выражению.
Пример текста:
Непонятный текст с яблоком, апельсином и другими фруктами: https://www.address_nr1.com / watch ? v = dQw4w9WgXcQ. Другой фрагмент текста www.address_nr2.pl; Последнее предложение со специальными символами! @ # $% ^ & * ().
Мое регулярное выражение:
/(www|http:|https:)+[^\s]+[\w]|[A-Z0-9]+/gmi
Я хочу получить обратное соответствие это регулярное выражение. Если я добавлю ^
во вторую часть регулярного выражения (www|http:|https:)+[^\s]+[\w]|[^A-Z0-9]+
, я могу правильно инвертировать все без веб-адреса. Как я могу инвертировать веб-адрес в этой ситуации?
«В конце» я буду использовать сценарий Google (var keywords = text.split(regex))
для pu sh всех ключевых миров и веб-адресов в массиве.
РЕДАКТИРОВАТЬ: I добавлены флаги регулярных выражений.
РЕШЕНИЕ: Спасибо, Рышард Чешский. «Скорее совпадать, не разделять». работает отлично.
var keywords = text.matchAll (/ (?: www|https?: //) \ S * \ b | [\ p {L} 0-9] + / gu); ключевые слова = Array.from (keywords, x => x [0]);
Я изменил AZ на \ p {L}, чтобы захватывать буквы Poli sh, и добавил флаг «u», потому что это необходимо с \ p {L}.