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'));
|
|
11.11.2017, 00:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Сообщение от Lion777
|
Я вообщем из разбора ваших примеров решил так
/(?:включить|выключить)(?:.(?!вк лючить|выключить))+/gim
|
чем не устроил этот вариант?
|
|
11.11.2017, 02:27
|
Кандидат Javascript-наук
|
|
Регистрация: 04.11.2017
Сообщений: 117
|
|
Сообщение от рони
|
чем не устроил этот вариант?
|
Я так смотрю, это, наверное, самый оптимальный вариант, тут меньше всего идет проверок...
|
|
22.11.2017, 22:47
|
Кандидат Javascript-наук
|
|
Регистрация: 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.
|
|
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>
|
|
23.11.2017, 01:04
|
Кандидат Javascript-наук
|
|
Регистрация: 04.11.2017
Сообщений: 117
|
|
Пасиб рони ), чет игрался регулярками, вроде все логично, на мой взгляд )), а не катит...
Еще вопрос, запятую надо тоже убрать
Давление, в пневмосистеме,
чет думал сделать так "(.*),?\s+" , а оно не катит )
|
|
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.
|
|
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>
|
|
23.11.2017, 01:43
|
Кандидат Javascript-наук
|
|
Регистрация: 04.11.2017
Сообщений: 117
|
|
Пасиб, чет полностью логику догнать в этих регулярках непросто )), вроде верно пишу, а оно )))... все не то, хоть рядом ))
|
|
|
|