Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 11.11.2017, 00:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Lion777
Есть получше вариант ?
Alexandroppolus, пост № 23
var str = "Включить воду свет выключить воду выключить включить свет";
var reg = /(включить|выключить)(?:.(?!включить|выключить))+/gim ;
var values = str.match(reg);
alert(values.join('\n'));
Ответить с цитированием
  #32 (permalink)  
Старый 11.11.2017, 00:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Lion777
Я вообщем из разбора ваших примеров решил так
/(?:включить|выключить)(?:.(?!вк лючить|выключить))+/gim
чем не устроил этот вариант?
Ответить с цитированием
  #33 (permalink)  
Старый 11.11.2017, 02:27
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Сообщение от рони Посмотреть сообщение
чем не устроил этот вариант?
Я так смотрю, это, наверное, самый оптимальный вариант, тут меньше всего идет проверок...
Ответить с цитированием
  #34 (permalink)  
Старый 22.11.2017, 22:47
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

есть массив строк

var arrData =
[
"Частота вращения шпинделей (об/мин) 6000",
"Давление, в пневмосистеме, Атм. 6",
"Частота вращения шпинделей (мин) 6000"
];

надо строки разбить, на такие подстроки
"Частота вращения шпинделей" "об/мин" "6000"
"Давление, в пневмосистеме" "Атм." "6"
это тип данные отформатировать для таблицы

var reg = /(.+)(?:\s\((.+)\))|(?:,\s(.+))\s+(\d+)$/; // если так /(.+)(?:\s\((.+)\)|,\s(.+))\s+(\d+)$/ то что-то похожее, но не то получается, одна маска undefined

var arrData = 
[
 "Частота вращения шпинделей (об/мин) 6000",
 "Давление, в пневмосистеме, Атм. 6",
 "Частота вращения шпинделей (мин) 6000"
];

var res = arrData[1].match(reg);

Последний раз редактировалось Lion777, 22.11.2017 в 22:50.
Ответить с цитированием
  #35 (permalink)  
Старый 22.11.2017, 23:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Lion777,
<script>
var reg = /^(.*)\s+\(?([^()]+)\)?\s+(\S+)/;

var arrData =
[
 "Частота вращения шпинделей (об/мин) 6000",
 "Давление, в пневмосистеме, Атм. 6",
 "Частота вращения шпинделей (мин) 6000"
];

var res = arrData.map(function(a) {
   return a.match(reg).slice(1)
});
document.write(JSON.stringify(res))
  </script>
Ответить с цитированием
  #36 (permalink)  
Старый 23.11.2017, 01:04
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Пасиб рони ), чет игрался регулярками, вроде все логично, на мой взгляд )), а не катит...
Еще вопрос, запятую надо тоже убрать
Давление, в пневмосистеме,
чет думал сделать так "(.*),?\s+" , а оно не катит )
Ответить с цитированием
  #37 (permalink)  
Старый 23.11.2017, 01:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Lion777,
<script>
var reg = /^(.*[^,])[,\s]+\(?([^()]+)\)?\s+(\S+)/;

var arrData =
[
 "Частота вращения шпинделей (об/мин) 6000",
 "Давление, в пневмосистеме, Атм. 6",
 "Частота вращения шпинделей (мин) 6000"
];

var res = arrData.map(function(a) {
   return a.match(reg).slice(1)
});
document.write(JSON.stringify(res))
  </script>

Последний раз редактировалось рони, 23.11.2017 в 01:35.
Ответить с цитированием
  #38 (permalink)  
Старый 23.11.2017, 01:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Lion777,
<script>
var reg = /^(.*[^,\s])[,\s(]+([^()]+)[)\s]+(\S+)/;

var arrData =
[
 "Частота вращения шпинделей (об/мин) 6000",
 "Давление, в пневмосистеме, Атм. 6",
 "Частота вращения шпинделей (мин) 6000"
];

var res = arrData.map(function(a) {
   return a.match(reg).slice(1)
});
document.write(JSON.stringify(res))
  </script>
Ответить с цитированием
  #39 (permalink)  
Старый 23.11.2017, 01:43
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Пасиб, чет полностью логику догнать в этих регулярках непросто )), вроде верно пишу, а оно )))... все не то, хоть рядом ))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести кол-во дней до дня Рождения plug-ugly Общие вопросы Javascript 3 14.09.2017 10:16
Запуск браузера (IE6 и выше) без "офорлмения" - без панелей, меню, строки состояния jett Events/DOM/Window 4 23.11.2011 15:58
$.ajax работает без success но при этом часть кода перезагружается!? saturn Элементы интерфейса 0 16.10.2011 10:09
Get запрос в Greasemonkey без обновления страницы 100matolog Общие вопросы Javascript 1 03.10.2011 04:37
Подскажите как в VLC плеере переключать канал без перезагрузки страницы? mff Events/DOM/Window 0 10.05.2010 17:28