Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

JS-split regex - включить сам разделитель в часть слева

#javascript #регулярные_выражения


Есть строка, например, "установить ВКЛ/ВЫКЛ".

массив_строки = строка.split('/(?=\/)|\s/')


в данном случае '/' оказывается в начале следующего элемента - '/ВЫКЛ'

Какой нужен regex для того, что бы появился следующий массив: ['установить', 'ВКЛ/',
'ВЫКЛ'] ?
    


Ответы

Ответ 1



(?=\/) - положительный блок просмотра вперёд, тогда как тут пригодился бы блок предварительного просмотра назад, но регулярные выражения JavaScript не поддерживают его. (?<=\/)|\s+ - так бы оно выглядело в s.split(). Можно найти все совпадения символов, отличных от пробельных и символа косой черты, за которыми может находится 1 необязательный знак косой черты: /[^\s\/]+\/?/g Демо регулярного выражения. Перед / обязательно наличие непробельного символа, отличного от /. console.log( "установить ВКЛ/ВЫКЛ".match(/[^\s\/]+\/?/g) );

Комментариев нет:

Отправить комментарий