1

Тема: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Проблема такая. Есть текст, большой. Там несколько раз regexmatch находит то что нужно, но выводит в первый раз только то, что находится в самом низу текста. То есть он ищет с низу, а не сверху. Можно ли это как-то исправить? Что нужно задать в шаблон поиска?

2

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Ну так дайте пример кода и текста.

3

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

file =
(
[02:59:02] [Жалоба] от Martin_Westbrook[116]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[144]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[122]:{FFFFFF} +
)
RegExMatch(file, "\[[0-9]+:[0-9]+:[0-9]+\] \[Жалоба\] от [A-z]+_[A-z]+\[([0-9]+)\]:{FFFFFF} \+$", found)
msgbox % found1
exitapp

Выводит 122, а мне нужно чтобы сразу нашло 116

4

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Так у вас идет привязка к концу. $

5

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Хм.. Я ещё плохо разбираюсь в шаблонах. Мне нужно чтобы сообщение было только в таком виде. То есть если после плюса что-то идет, то это не подходит к шаблону. Подправьте шаблон, пожалуйста.

6 (изменено: yalanne, 2015-07-16 20:19:33)

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

file =
(
[02:59:02] [Жалоба] от Martin_Westbrook[116]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[144]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[122]:{FFFFFF} +
)
RegExMatch(file, "U)\[[\d \:]+\].*\[(\d+)\].*\+",found)
msgbox % found1
exitapp

7

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Так там везде после плюса идет знак переноса строки, кроме последнего плюса.

8

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Malcev пишет:

Так там везде после плюса идет знак переноса строки, кроме последнего плюса.

Это я примерный текст кинул. В реальности, там может быть совершенно разный текст.

9

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

file =
(
[02:59:02] [Жалоба] от Martin_Westbrook[116]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[144]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[122]:{FFFFFF} +
)
MsgBox, % RegExReplace(file, "s).*?\[(\d+)].*", "$1")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

То есть если после плюса что-то идет, то это не подходит к шаблону. Подправьте шаблон, пожалуйста.

RegExMatch(file, "\[[0-9]+:[0-9]+:[0-9]+\] \[Жалоба\] от [A-z]+_[A-z]+\[([0-9]+)\]:{FFFFFF} \+$", found)

Если кириллицы нету и начальная часть устраивает, то заменяешь на этот:

RegExMatch(file, "\[[0-9]+:[0-9]+:[0-9]+\] \[Жалоба\] от [A-z]+_[A-z]+\[([0-9]+)\]:{FFFFFF} \+(\R|$)", found)

11

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

А что, мой не катит?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12 (изменено: Malcev, 2015-07-17 17:40:52)

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Смотря, какой результат нужен.
Например если такой пример, то нет:

file =
(
[02:59:02] [Жалоба] от Martin_Westbrook[116]:{FFFFFF} + test
[02:59:02] [Жалоба] от Martin_Westbrook[144]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[122]:{FFFFFF} +
)
MsgBox, % RegExReplace(file, "s).*?\[(\d+)].*", "$1")

13

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Тогда я не понял условия. Т. е. в этом случае нужно 144?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Ну я так понял, что да.

15

Re: AHK: Вывод найденного значения RegExMatch`oм с начала переменной

Тогда так:

file =
(
[02:59:02] [Жалоба] от Martin_Westbrook[116]:{FFFFFF} + test
[02:59:02] [Жалоба] от Martin_Westbrook[144]:{FFFFFF} +
[02:59:02] [Жалоба] от Martin_Westbrook[122]:{FFFFFF} +
)
RegExMatch(file, "\[(\d+)][^\r\n\+]*\+(\R|$)", match)
MsgBox, % match1
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder