Автор Тема: [RegExp] Получить значения дробных чисел в скобках?  (Прочитано 348 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 3
  • Пол: Мужской
    • Награды
Имеется набор примерно таких строк:
Код: AutoIt [Выделить]
$TestString1 = "На 21,366% повышенный шанс критического удара (6,103, 12,264)"
$TestString2 = "12,312 % больше здоровья на данном предмете"
$TestString3 = "Cкорость атаки выше на 2,375%"
$TestString4 = "+ 8,295 % прочность доспехов"

 $asResult = StringRegExp($TestString4, '[0-9]+,[0-9]*', 1)

If @error == 0 Then
   MsgBox(0, "SRE Result", $asResult[0])
EndIf
 


Требуется считать в переменные вещественные числа из них. С тестовыми строками $TestString2, $TestString3, $TestString4 нет проблем.
А как считать в массив значения из $TestString1 - те числа, что в скобках через запятую перечислены? Причём там может быть от 2ух до 4ёх значений через запятую.
Всё ещё осложняется тем, что целая и дробная часть разделены не точкой, а запятой, и сами числа разделены запятой.

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

[RegExp] Получить значения дробных чисел в скобках?
« Отправлен: Ноябрь 19, 2018, 23:57:34 »

Оффлайн xXx [?]

  • Новичок
  • *
  • Сообщений: 42
  • Репутация: 11
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Код: AutoIt [Выделить]
#include <Array.au3>
$TestString1 = "На 21,366% повышенный шанс критического удара (6,103, 12,264)"
 $asResult = StringRegExp($TestString1, '[0-9]+,[0-9]*', 3)
_ArrayDisplay($asResult)



Добавлено: Ноябрь 20, 2018, 00:37:08
и сами числа разделены запятой.
поправочка: запятой с пробелом.

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 45

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Не, неправильно.
Смысл был вытянуть только числа в скобках: 6,103 и 12,264.

Помечен как лучший ответ пользователем eralex Отправлен Ноябрь 23, 2018, 20:25:59

Онлайн sngr [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 894
  • Репутация: 360
    • Награды
  • Версия AutoIt: 3.3.8.1
Код: AutoIt [Выделить]
$asResult = StringRegExp($TestString1, '(?:\(|\s)([0-9]+,[0-9]*)(?:,|\))', 3)


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

Re: [RegExp] Получить значения дробных чисел в скобках?
« Ответ #3 Отправлен: Ноябрь 20, 2018, 14:10:52 »

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 45

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Спасибо за помощь. Всё как надо работает!

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 45

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Возникла ещё одна проблема. Появились такие строки:
Код: AutoIt [Выделить]
$TestString5 = "<cFFFFFFFF>Прочность доспехов: + <cD69B00FF>640"
$TestString6 = "<cFFFFFFFF>Здоровье: + <cD69B00FF>1078</></>"
 


Тут перед целым числом указывается цвет. Как исключить из поиска <cFFFFFFFF> и <cD69B00FF>, а то при попытке получить целое число
Код: AutoIt [Выделить]
$asResult = StringRegExp($TestString6, '[0-9]+', 3)
 


в результат ошибочно заносятся числа 69 и 00.

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1445
  • Репутация: 216
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Возникла ещё одна проблема...
И как эта проблема укладывается в рамки данной темы?

Оффлайн eralex [?]

  • Новичок
  • *
  • Сообщений: 45

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • Награды
Цитировать
И как эта проблема укладывается в рамки данной темы?

Не хотел плодить темы.

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

Re: [RegExp] Получить значения дробных чисел в скобках?
« Ответ #7 Отправлен: Ноябрь 22, 2018, 13:33:51 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7830
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
OffTopiceralex  [?]
Цитировать
Не хотел плодить темы.
Плодите (в рамках правил естественно), для этого и есть форум.


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

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

Re: [RegExp] Получить значения дробных чисел в скобках?
« Ответ #8 Отправлен: Ноябрь 23, 2018, 09:51:08 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
5728 Просмотров
Последний ответ Апрель 12, 2011, 13:20:39
от CreatoR
3 Ответов
2776 Просмотров
Последний ответ Сентябрь 12, 2011, 22:57:06
от madmasles
1 Ответов
6387 Просмотров
Последний ответ Ноябрь 12, 2011, 21:37:31
от AZJIO
3 Ответов
3214 Просмотров
Последний ответ Май 20, 2012, 16:49:52
от VladUs
4 Ответов
2323 Просмотров
Последний ответ Июль 16, 2013, 17:09:18
от AZJIO
2 Ответов
2454 Просмотров
Последний ответ Август 03, 2013, 11:09:08
от Naisho
5 Ответов
3359 Просмотров
Последний ответ Февраль 09, 2014, 07:25:06
от gregaz
5 Ответов
2059 Просмотров
Последний ответ Март 25, 2016, 12:22:25
от InnI
4 Ответов
304 Просмотров
Последний ответ Март 17, 2018, 23:11:36
от rybik
1 Ответов
232 Просмотров
Последний ответ Июнь 24, 2018, 00:10:26
от Tempo