Автор Тема: [RegExp] Получить число из строки, игнорируя часть этой строки  (Прочитано 208 раз)

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

Оффлайн eralex [?]

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


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


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

Как временное решение пока использую такой код:
Код: AutoIt [Выделить]
$TestString6 = StringRegExpReplace($TestString6, '<cD69B00FF>', '\1')
$asResult = StringRegExp($TestString6, '[0-9]+', 3)
 


Однако в будущем цвета могут поменяться, добавится новые, хочется универсальное решение без лишнего кода.

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


Помечен как лучший ответ пользователем eralex Отправлен Ноябрь 24, 2018, 00:41:36

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1445
  • Репутация: 216
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
#include <Array.au3>

$TestString = "666<cFFFFFFFF>Прочность доспехов: + <cD69B00FF>640" & _
        @CRLF & "<cFFFFFFFF>Здоровье: + <cD69B00FF>1078</></>888"

$aArray = StringRegExp($TestString, '(?:[<>\s]|^)(\d+)[<>\s]?', 3)
If Not @error Then _ArrayDisplay($aArray)


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

Re: [RegExp] Получить число из строки, игнорируя часть этой строки
« Ответ #1 Отправлен: Ноябрь 23, 2018, 22:50:25 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
4962 Просмотров
Последний ответ Апрель 29, 2010, 15:33:20
от CreatoR
15 Ответов
7243 Просмотров
Последний ответ Декабрь 29, 2010, 18:57:43
от CreatoR
7 Ответов
5536 Просмотров
Последний ответ Март 13, 2011, 01:29:02
от Garrett
2 Ответов
3689 Просмотров
Последний ответ Сентябрь 05, 2011, 21:47:41
от Dm666
3 Ответов
4495 Просмотров
Последний ответ Октябрь 13, 2011, 10:56:02
от madmasles
2 Ответов
3159 Просмотров
Последний ответ Август 06, 2012, 20:54:12
от MockeR
0 Ответов
1668 Просмотров
Последний ответ Август 17, 2013, 22:02:52
от Afonichev
18 Ответов
2003 Просмотров
Последний ответ Март 10, 2017, 22:04:59
от Alofa
2 Ответов
2317 Просмотров
Последний ответ Март 16, 2017, 01:14:10
от Skif_off
8 Ответов
2271 Просмотров
Последний ответ Август 15, 2017, 17:40:20
от Maildog