Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083

RegEx для выражения 1+2+3

19.03.2017, 15:09. Показов 1186. Ответов 7

Студворк — интернет-сервис помощи студентам
Собственно сабж. Не получается спарсить выражение 1+2+3 таким образом, чтобы например match находил 1+2 и 2+3, то есть
JavaScript
1
['1+2', '2+3']
Пробовал по-всякому, прошерстрил весь стековерфлоу - ничего не нашел. Выручайте
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2017, 15:09
Ответы с готовыми решениями:

Как укоротить Regex выражения
Здравствуйте! Есть форма поиска с полями "ФИО","Дата рождения","Адрес","Телефон". С возможностью поиска, как стандартного, так и по...

Regex: Создать регулярное выражения для поиска строк вида: "add -s 50 -k 20".
Нужно создать регулярное выражения для поиска строк вида: "add -s 50 -k 20". При этом надо, чтобы он искал все -s и -k и другие буквы. То...

Регулярные выражения Regex
Как записать регулярное выражение, чтобы сработал код, Строка input читается из файла , а строка sPar из TextBox. И когда в TextBox такое...

7
 Аватар для Gr1f0nn
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
19.03.2017, 15:46
Code
1
(1+2)|(2+3)
?
0
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
19.03.2017, 20:44  [ТС]
Gr1f0nn, эх, если бы все было так просто

В выражении могут участвовать любые целые числа и выражение может быть сколь угодно большим. Например как-то вот так: 5+7+3+1+12+100500+19

тогда мы должны получить следующее:
JavaScript
1
['5+7', '7+3', '3+1', '1+12', '12+100500', '100500+19']
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
19.03.2017, 23:22
Лучший ответ Сообщение было отмечено Padimanskas как решение

Решение

А обязательно ли это делать регуляркой? Тут в регулярки потребуется я думаю рекурсия. Но первое что пришло на мысль
JavaScript
1
2
3
4
5
6
7
     let _ = '5+7+3+1+12+100500+19';
     let arr = [];
        let c = _.split('+');
    for(var i=0;i<c.length-1;i++){
        arr[i] = c[i]+'+'+c[i+1];
    }
     console.log(arr);
1
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
19.03.2017, 23:41  [ТС]
Azdeman, целый день искал решение этой "проблемы", но регулярки оказались не настолько гибкими как мне всегда казалось. В общем пусть горит этот день. Ну а мой первый вариант, который "навскидку", оказался примерно такого же плана, но все равно спасибо преогромное)

JavaScript
1
2
3
4
var exp = '1+2+3+4+5+6+7', splExp = exp.split('');
for(var i=0; i < splExp.length; i++){
if(splExp[i] === '+') console.log(splExp[i-1],splExp[i],splExp[i+1]);
}
0
20.03.2017, 02:00

Не по теме:

Padimanskas, Ахах, действительно :) Тогда прошу прощения, думал, что задача намного банальнее

0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.03.2017, 03:20
Как вариант
JavaScript
1
2
3
4
5
6
let result = '5+7+3+1+12+100500+19'
  .split('+')
  .reduce((prev, curr, i, arr) => {
    i && prev.push(arr[i - 1] + '+' + curr);
    return prev;
  }, []);
1
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
20.03.2017, 09:50  [ТС]
Цитата Сообщение от Fedor Vlasenko Посмотреть сообщение
Как вариант
Хороший вариант
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2017, 09:50
Помогаю со студенческими работами здесь

Регулярные выражения Regex
привет всем, подскажите пожалуйста, как называется эта комманда в с# и как использовать ее?

Регулярные выражения (regex)
Нужно извлечь строку из переменной класса smatch. Пробовал через преобразование string(smatch_var) и через потоки, и во всех способах...

Составление regex выражения
Здравствуйте) Нужна помощь из составлением regex выражения. Оно должно ловить все строки с айпи, например: 127 0 0 1 127 0 0 1...

Регулярные выражения Boost::regex
Всем привет, разбирал пример с учебника (регулярные выражения) и столкнулся не понятным явлением. Задание: Выбрать номера только такого...

Регулярные выражения Boost::regex
Всем привет! Юзаю библиотеку boost. В частности boost::regex. Столкнулся с такой проблемой. Как заставить библиотеку обрабатывать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru