1

Тема: АНК: Регулярные выражения + переменные?

Есть ли возможность использовать переменные и выражения в регулярных выражениях?

2

Re: АНК: Регулярные выражения + переменные?

Bobby пишет:

Есть ли возможность использовать переменные и выражения в регулярных выражениях?

Не знаю как остальные, но я вопроса не понял. Придумайте конкретный пример.

3

Re: АНК: Регулярные выражения + переменные?

Вероятно, имеются в виду паттерны в RegExMatch() и RegExReplace().

Text = Мама мыла раму

Var1 = Мама
Var2 = мыла
Var3 = раму

Loop 3
{
   RegExMatch(Text, "P)(" . Var%A_Index% . ")", Found)
   MsgBox, % FoundPos1
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: АНК: Регулярные выражения + переменные?

Наверное это паттерны. Например, есть код:

clipboard = мотор
RegExMatch(clipboard, "мо[^ ]{3}", match)  ; находит слово мотор
MsgBox, %match%

Как правильно составить регулярное выражение, если вместо "мо" вставить переменную Var = мо ?

5

Re: АНК: Регулярные выражения + переменные?

clipboard = мотор
Var = мо
RegExMatch(clipboard, Var . "[^ ]{3}", match)  ; находит слово мотор
MsgBox, %match%
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: АНК: Регулярные выражения + переменные?

Спасибо! Так просто оказалось!:lol: А я запарился выдумывать варианты. Главное все в кавычках ставил. А потом еще с паттерном экспериментировал. Нет хорошего хелпа по регулярным выражениям.

7

Re: АНК: Регулярные выражения + переменные?

Опять не ясно, как применить переменные в регулярных выражениях.

clipboard = стол
Var = слот
Var2 = 4
; Как вставить переменные Var  и Var2 ?
RegExMatch(clipboard, "[слот]{4}", match)  ; находит слово стол
MsgBox, %match%

8

Re: АНК: Регулярные выражения + переменные?

Переменные — без кавычек, текстовые данные — в кавычках:

clipboard = стол
Var = слот
Var2 = 4
; Как вставить переменные Var  и Var2 ?
RegExMatch(clipboard, "[" Var "]{" Var2 "}", match)  ; находит слово стол
MsgBox, %match%
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: АНК: Регулярные выражения + переменные?

Спасибо! Опять все просто оказалось. Гениальное - просто! На этот раз я все пробовал без кавычек, как в предыдущем примере.

10

Re: АНК: Регулярные выражения + переменные?

Подскажите, пожалуйста, как верно внести переменную в параметры ф-ии?


if (A_UserName= "Admin"){
pricon = D:\Soft\AHK\Scripts\icons\Premiere 2018 ACER\
}
ImageWaitClick(pricon "analyze.png", 500) ; ???
return

ImageWaitClick(pic, time:=1000){
	CoordMode, Pixel, Screen
	EndTime := A_TickCount + time
	While EndTime>A_TickCount {
	ImageSearch, picX, picY, 0, 0, A_ScreenWidth, A_ScreenHeight, % pic 
	If !ErrorLevel
		Break
	}
	If ErrorLevel
		Tippy("Image Not Found!", 2000)
	Else
		ClickAndReturn(picX,picY)
}
ClickAndReturn(x,y){
	ControlGetPos ,,,,,, ahk_id %StartCtrl%
	MouseGetPos, StartX, StartY
	MouseClick, , %x%, %y%, , 0.1
	MouseMove, StartX, StartY
}

11

Re: АНК: Регулярные выражения + переменные?

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