1 (изменено: iamsheepish, 2019-06-16 03:58:41)

Тема: AHK: Почему не работает if var contains?

Доброго времени суток!
Я, как новичок в AHK-скриптинге, не могу понять, почему мой код не работает, как надо?

Numpad0::
lastline := "text"
RegExMatch(lastline, "\[\d+:\d+:\d+\]\s+\w+\sполучил бан чата от администратора Isak_Edwards", openone)
RegExMatch(lastline, "\[\d+:\d+:\d+\]\s+Администратор Isak_Edwards посадил игрока \w+ в Де Морган\. Причина:(\s+.*)", opentwo)
if lastline contains %openone%,%opentwo%
{
	MsgBox text
}
return

В данном коде "if lastline contains" всегда удачное, а почему именно - мне не понятно.
Кто сможет, объясните поподробнее.

2 (изменено: iamsheepish, 2019-06-16 13:49:21)

Re: AHK: Почему не работает if var contains?

stealzy, но как в "text" могут содержаться эти значения? Когда я проверял по-отдельности, а именно "if lastline contains openone" или "if lastline contains opentwo", то данное выражение не было удачным. А когда я подставлял нужный текст в lastline - удачным.
Следовательно, я считаю, что проблема в том, что я неправильно записал две переменных в ""if lastline contains". Такое ощущение, что он реагирует на пустую строку, которая всегда выдаёт удачу.

3

Re: AHK: Почему не работает if var contains?

iamsheepish пишет:

ощущение, что он реагирует на пустую строку, которая всегда выдаёт удачу.

Правильно, проверить несложно:

lastline := "text", openone := "", opentwo := ""
if lastline contains %openone%,%opentwo%
	MsgBox % lastline "-" openone "-" opentwo
if lastline contains ,
	MsgBox % lastline "-" openone "-" opentwo