Автор Тема: [RegExp] Получить числа внутри скобок, разделённые запятой  (Прочитано 2426 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн axsmak [?]

  • Кот
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: 7
  • Пол: Мужской
    • Перекрёсток Алексея Бабиева
    • Награды
  • Версия AutoIt: 3.3.14.0
В принципе, из названия темы всё понятно, уточню лишь примером:

Есть строка вида "бла-бла (12345, 67890) бла-бла-бла"
Нужно получить числа в массив

PS: Если у кого есть дежурная ссылка на рускоязычное а-ля "Регулярки для чайников" буду благодарен

Русское сообщество AutoIt


Оффлайн axsmak [?]

  • Кот
  • Новичок
  • *
  • Сообщений: 32

  • Автор темы
  • Репутация: 7
  • Пол: Мужской
    • Перекрёсток Алексея Бабиева
    • Награды
  • Версия AutoIt: 3.3.14.0
Вроде осилил сам:
Код: AutoIt [Выделить]
Local $s = "бла-бла (12345, 67890) бла-бла-бла"
Local $aNums = StringRegExp($s, '\([^0-9]?(\d+)[^0-9]?,[^0-9]?(\d+)[^0-9]?\)', 3)
_ArrayDisplay($aNums)
 

На всякий случай исключил любые случайные символы кроме самих чисел

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 532
  • Репутация: 84
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Тоже пытаюсь освоить регулярные выражения. Попробовал разобраться в Вашем шаблоне, зачем так сложно ? Не проще ли просто найти все десятичные цифры  так : :
Код: AutoIt [Выделить]
Local $s = "бла-бла (12345, 67890) бла-бла-бла"
Local $aNums = StringRegExp($s, '(\d+)', 3)
_ArrayDisplay($aNums)
 


Оффлайн axsmak [?]

  • Кот
  • Новичок
  • *
  • Сообщений: 32

  • Автор темы
  • Репутация: 7
  • Пол: Мужской
    • Перекрёсток Алексея Бабиева
    • Награды
  • Версия AutoIt: 3.3.14.0
ra4o Мой опыт в регулярках 5 минут) Просто быстро надо было реализовать. Спасибо

Русское сообщество AutoIt

Re: [RegExp] Получить числа внутри скобок, разделённые запятой
« Ответ #3 Отправлен: Январь 06, 2017, 11:50:06 »

Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 1076
  • Репутация: 146
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Надо проверить:
« Последнее редактирование: Январь 06, 2017, 12:16:42 от Alofa »

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 532
  • Репутация: 84
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Надо проверить:
Пробовал так - не находит ничего.

Оффлайн Alofa [?]

  • Скриптер
  • ****
  • Сообщений: 1076
  • Репутация: 146
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
OffTopic
... Пробовал так - не находит ничего.
Прошу прощения за флуд с телефона.

... зачем так сложно ?
А вот зачем:
Код: AutoIt [Выделить]
$s = "(бла)-бла (12345, 67890 ) бла-(111111)бла-бла"


ИМХО, pattern axsmak считаю правильным, все остальное это оптимизация и наведение красоты.
К примеру так:
Код: AutoIt [Выделить]
Local $aNums = StringRegExp($s, '\(\D*(\d+)\D+?(\d+)[^)]*\)', 3)




Добавлено: Январь 07, 2017, 01:38:46
... Мой опыт в регулярках 5 минут)
Да вы гений... Или может я такой тугоум. ;D
« Последнее редактирование: Январь 07, 2017, 12:30:35 от Alofa »

Русское сообщество AutoIt

Re: [RegExp] Получить числа внутри скобок, разделённые запятой
« Ответ #6 Отправлен: Январь 07, 2017, 01:06:34 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
3274 Просмотров
Последний ответ Август 29, 2011, 11:24:30
от Yashied
5 Ответов
6814 Просмотров
Последний ответ Сентябрь 22, 2011, 23:46:37
от Medic84
6 Ответов
3200 Просмотров
Последний ответ Октябрь 21, 2011, 13:16:54
от Trans
2 Ответов
2434 Просмотров
Последний ответ Май 26, 2012, 04:44:49
от Yashied
2 Ответов
2740 Просмотров
Последний ответ Август 06, 2012, 20:54:12
от MockeR
2 Ответов
2060 Просмотров
Последний ответ Март 15, 2013, 14:37:44
от AZJIO
6 Ответов
3409 Просмотров
Последний ответ Май 17, 2013, 16:41:09
от forbrock
0 Ответов
1475 Просмотров
Последний ответ Август 17, 2013, 22:02:52
от Viktor1703
10 Ответов
5663 Просмотров
Последний ответ Сентябрь 22, 2013, 21:20:13
от Юрий
4 Ответов
5414 Просмотров
Последний ответ Август 24, 2016, 13:27:30
от iltmpz