Alexandroppolus,
:thanks: |
подскажите по регулярке или инной выход. Мне нужно разбить строку по нескольким ключевым словам "включить выключить". Например,
есть строка: "включить воду свет выключить воду выключить свет" мне надо разбить ее на: включить воду свет выключить воду выключить свет подскажите варианты |
var str = "не включать нифига включить воду свет выключить воду выключить свет"; var values = str.match(/(?:включить|выключить)\s(?:.(?!включить|выключить))+/g); alert(values.join('\n')); |
var str = "не включать нифига включить воду свет выключить воду выключить свет"; var values = str.match(/(включить|выключить).*?(?=включить|выключить|$)/g); alert(values.join('\n')); |
пасиб ребята, надо регулярки подтянуть мне, с 2009 года не кодил, все настолько забылось, что просто ужас, счас буду разбиратся в ваших регулярках, что к чему...
|
рони,
Правильно ли я сформулировал? Сопоставить слово "включить или выключить" за которым следует произвольный символ, повторяющийся только, если за ним следует слово "включить или выключить", или конец строки. Alexandroppolus, Сопоставить слово "включить или выключить" за которым следует пробел, за пробелом следует произвольный символ повторяющийся один и более раз, если только за ним не следут слово "включить или выключить". Зачем запрет на использование ссылок в группировке? У меня правильно находит и без символов ?: /(включить|выключить)\s(.(?!включить|выключить))+/g |
Цитата:
Цитата:
баз вопросика там съело бы всю строку первым совпадением. |
подскажите, почему данная регулярка не будет работать ?
/(?:включить|выключить).+(?!включить|выключить)/gim сначала проверяем есть ли включить|выключить потом идет любой символ от 1 и больше раза и не должно быть в конце включить|выключить ? --- Я вообщем из разбора ваших примеров решил так /(?:включить|выключить)(?:.(?!включить|выключить))+/gim так как мне может прилететь строка "Включить воду свет выключить воду выключить включить свет" и тогда выдаст ["выключить воду", "выключить включить свет"] |
Цитата:
Цитата:
|
Ребята, я еще со своим велосипедом )), сегодня вспоминал регулярки и вот такой вопрос по прежнему вопросу.
Есть строка: "Включить воду свет выключить воду выключить включить свет" мне надо что-бы не повторялось подряд выключить включить, а учитывалась последняя подстрока "включить|выключить" с данными, решил вот такой регуляркой var str = "Включить воду свет выключить воду выключить включить свет" ; var reg = /(?:включить|выключить)\s(?!включить|выключить).+?(?=\sвключить|\sвыключить|$)/gim; alert(str.match(reg)); Есть получше вариант ? Или это нормально в плане оптимизаци? |
Часовой пояс GMT +3, время: 09:18. |