[Вопрос] Парсинг строки до конца
|
|
zombieserv |
Дата: Воскресенье, 04.06.2017, 07:33 | Сообщение # 1
|
Новичок
Сообщений: 13
Статус: Offline
|
Всем привет. Вопрос касательно RegExMatch. У меня есть строка: [07:18:32] Вы получили СМС от Nick_Name[77](Тел.123456): Текст
Есть регулярное выражение: "\QВы получили СМС от \E(.*)\Q[\E(.*)]\Q\E(.*)\Q: \E(.*)"
Парсит таким образом: Out1 = Nick_Name Out2 = 77 Out3 = (Тел.123456) Out4 = Тест
Но если я пытаюсь сравнить if (Out4 == Тест) То цикл НЕ СООТВЕТСТВУЕТ действительности А всё потому, что в переменной Out4 не просто "Текст", а конец строки, что-то ещё после "Текст".
А если я изменю (.*) на (.....), то "Текст" сравнивается правильно. "\QВы получили СМС от \E(.*)\Q[\E(.*)]\Q\E(.*)\Q: \E(.....)"
Вопрос: как спарсить строку до конца?
Я надеюсь, я понятно выразил суть проблемы
Сообщение отредактировал zombieserv - Воскресенье, 04.06.2017, 07:36 |
|
|
|
Demy |
Дата: Воскресенье, 04.06.2017, 11:04 | Сообщение # 2
|
Бывалый
Сообщений: 422
Статус: Offline
|
Код U)\E(.*)\Q[\E(.*)]\Q\E(.*)\Q: \E(.*)\R странные у вас регулярки...
AutoReporter / http://cheat-master.ru/forum/150-486717-1 Finder / http://cheat-master.ru/forum/160-497245-1 DLQ Binder / http://cheat-master.ru/forum/150-594163-1
У ТЕБЯ ЕСТЬ ИДЕЯ ДЛЯ ПРОГРАММЫ, НО САМ ТЫ НЕ МОЖЕШЬ НАПИСАТЬ КОД? ПИШИ МНЕ
|
|
|
|
zombieserv |
Дата: Воскресенье, 04.06.2017, 11:08 | Сообщение # 3
|
Новичок
Сообщений: 13
Статус: Offline
|
Быдлокод, да? xD Ну, поправьте, как будет более оптимизировано, я делал просто и прямо
|
|
|
|
CZAR |
Дата: Воскресенье, 04.06.2017, 13:14 | Сообщение # 4
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
Цитата zombieserv ( ) f (Out4 == Тест) Ну во первых если тебе нужно переменную с текстом сравнить, то нужно текст брать в кавычки
Регулярка которую я сделал:
Код \] Вы получили СМС от (.*)\[([0-9]{1,3})\]\(Тел.([0-9]+)\): (.*)
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант Cheat-Master: *тема* AHK [S-RP] House Finder / House Teleporter [SAMP] Online Counter [S-RP] [For Event] Show Star [S-RP] AntiCasino [S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook [S-RP] [BOT] /dance Winner | Делаем розыгрыши среди участников темы. SAMP-UDF [AHK Урок] Выбор в диалогах мышкой и enter`ом [SAMP] Быстрый ответ на СМС [ERP] Помощник для адвоката [DRP] FakeTime Достижения: - 26.02.2017 - 03.01.2018 - 26.05.2018 - 22.09.2018 - 04.04.2019
|
|
|
|
zombieserv |
Дата: Воскресенье, 04.06.2017, 14:02 | Сообщение # 5
|
Новичок
Сообщений: 13
Статус: Offline
|
Цитата Phoenixxx_Czar ( ) Ну во первых если тебе нужно переменную с текстом сравнить, то нужно текст брать в кавычки Дело не в том, чтобы сравнивать с текстом. У меня не получается именно парсить текст в конце.. Ну, вот вам пример. Если я пытаюсь вывести: %out4%%out1% - то Out1 даже не выведется, т.к. out4 в конце строки и нет ограничения.. Я не знаю, как понятнее объяснить проблемуДобавлено (04.06.2017, 14:00) ---------------------------------------------
Цитата Phoenixxx_Czar ( ) Регулярка которую я сделал: За регулярку спасибо.. Но вопрос до сих пор актуален.Добавлено (04.06.2017, 14:02) --------------------------------------------- Я так понимаю, нужно каким-то образом после Вы получили СМС от (.*)\[([0-9]{1,3})\]\(Тел.([0-9]+)\): (.*)|ВОТ ТУТ| Обозначить конец строки. Только как?
|
|
|
|
Demy |
Дата: Воскресенье, 04.06.2017, 19:38 | Сообщение # 6
|
Бывалый
Сообщений: 422
Статус: Offline
|
рассматривай построчно. Или же \R и жадность включи. Я тебе скидывал конец регулярки, ты ее пробывал?
AutoReporter / http://cheat-master.ru/forum/150-486717-1 Finder / http://cheat-master.ru/forum/160-497245-1 DLQ Binder / http://cheat-master.ru/forum/150-594163-1
У ТЕБЯ ЕСТЬ ИДЕЯ ДЛЯ ПРОГРАММЫ, НО САМ ТЫ НЕ МОЖЕШЬ НАПИСАТЬ КОД? ПИШИ МНЕ
|
|
|
|
zombieserv |
Дата: Четверг, 13.07.2017, 03:46 | Сообщение # 7
|
Новичок
Сообщений: 13
Статус: Offline
|
Цитата Demy ( ) рассматривай построчно. Или же \R и жадность включи. Я тебе скидывал конец регулярки, ты ее пробывал? Извиняюсь за весьма долгий ответ: сессия завалила. Нет, это не помогло. Что-то мешает сравнить переменную в конце.
|
|
|
|
CZAR |
Дата: Четверг, 13.07.2017, 15:25 | Сообщение # 8
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
zombieserv, del (забыл что писал уже свою регулярку :D) Ты тести не в проге, а в игре. В проге косяки бывают.
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант Cheat-Master: *тема* AHK [S-RP] House Finder / House Teleporter [SAMP] Online Counter [S-RP] [For Event] Show Star [S-RP] AntiCasino [S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook [S-RP] [BOT] /dance Winner | Делаем розыгрыши среди участников темы. SAMP-UDF [AHK Урок] Выбор в диалогах мышкой и enter`ом [SAMP] Быстрый ответ на СМС [ERP] Помощник для адвоката [DRP] FakeTime Достижения: - 26.02.2017 - 03.01.2018 - 26.05.2018 - 22.09.2018 - 04.04.2019
Сообщение отредактировал Phoenixxx_Czar - Четверг, 13.07.2017, 15:28 |
|
|
|
tumkin |
Дата: Пятница, 14.07.2017, 10:47 | Сообщение # 9
|
Tumkin Project
Сообщений: 1186
Статус: Offline
|
Что := Trim(Что, "`r`n`t ") обрезает с двух сторон Что "невидимые" символы.
|
|
|
|
Coockie |
Дата: Пятница, 14.07.2017, 19:14 | Сообщение # 10
|
Новичок
Сообщений: 27
Статус: Offline
|
RegExMatch(var, "^\[\d{2}:\d{2}:\d{2}\]\sВы\sполучили\sСМС\sот\s(\w+)\[(\d{1,3})\]\(Тел\.(\d{6})\):\s(.*)$", match) match1 - ник match2 - ид match3 - телефон match4 - текст
Сообщение отредактировал Coockie - Пятница, 14.07.2017, 23:13 |
|
|
|
MrGPro |
Дата: Пятница, 21.07.2017, 10:18 | Сообщение # 11
|
Боец
Сообщений: 202
Статус: Offline
|
global StringChat = "[07:18:32] Вы получили СМС от Nick_Name[77](Тел.123456): Текст" RegExMatch(StringChat, "^\[\d{2}:\d{2}:\d{2}\]\sВы\sполучили\sСМС\sот\s(?<Nick>\w+)\[(?<ID>\d{1,3})\]\(Тел\.(?<Phone>\d{6})\):\s(?<Msg>.*)$", match) MsgBox, % "Ник: " matchNick . "`nID: " . matchID . "`nТел: " . matchPhone . "`nСМС:" . matchMsg
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
tumkin |
Дата: Пятница, 21.07.2017, 21:10 | Сообщение # 12
|
Tumkin Project
Сообщений: 1186
Статус: Offline
|
Цитата Coockie ( ) RegExMatch(var, "^\[\d{2}:\d{2}:\d{2}\]\sВы\sполучили\sСМС\sот\s(\w+)\[(\d{1,3})\]\(Тел\.(\d{6})\):\s(.*)$", match)
Цитата MrGPro ( ) RegExMatch(StringChat, "^\[\d{2}:\d{2}:\d{2}\]\sВы\sполучили\sСМС\sот\s(?<Nick>\w+)\[(?<ID>\d{1,3})\]\(Тел\.(?<Phone>\d{6})\):\s(?<Msg>.*)$", match) Жесткие у вас регулярки пацаны.
Регулярка:
Код ^\[\d+:\d+:\d+\] Вы получили СМС от ([A-z0-9_]+)\[(\d+)\]\(Тел\.(\d+)\): (.*)$ На выходе Match[1]: Nick_Name Match[2]: 77 Match[3]: 123456 Match[4]: Текст
|
|
|
|