Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.
Группа Вконтакте | Электронная почта | Симаков Яков ВК |
Проверяет, содержит ли переменная какую-либо строку из списка.
Var | Имя переменной, чьё содержимое будет просматриваться. При операторе "in" требуется точное совпадение переменной с одной из строк списка. При операторе "contains" переменная может содержать строку из списка в качестве своей подстроки. |
MatchList | Разделённый запятыми список строк, каждая из которых будет искаться в Var. Пробелы и табуляции до и после запятых имеют значение, так как будут считаться частью искомой строки. Например, если MatchList задан как "ABC , XYZ", то Var должна содержать либо ABC с пробелом на конце, либо XYZ с пробелом в начале.
Две запятые подряд трактуются как одна литеральная запятая. Например, в следующем примере первой строкой списка будет считаться "string1," (с запятой на конце): If Var In string1,,,string2. Точно так же следующий список содержит только одну строку, внутри которой стоит одна запятая: If Var In single,,item. Чтобы включить в список пустую строку, начните его с запятой, как в этом примере: If Var In ,string1,string2 (при операторе "contains" поиск пустой строки всегда будет удачным, поскольку любая строка содержит пустую строку). Поскольку строки, составляющие MatchList, не трактуются как отдельные параметры, весь список может содержаться в одной переменной. Фактически, он должен содержаться в переменной целиком либо частично, если его длина превышает 16383 символа, поскольку это максимально допустимая длина строки кода в скрипте. Например, MatchList мог бы быть задан как %List1%,%List2%,%List3%, где каждая из переменных в свою очередь содержит большой список строк для поиска. Если какая-то из строк списка окажется длиннее 16384 знаков, символы после этого лимита будут считаться уже следующей строкой. Поэтому лучше избегать включения в список столь длинных строк. |
Сравнение всегда является алфавитным, а не числовым. Например, строка "11" не совпадёт со строкой "11.0".
Оператор "contains" ищет так же, как команды IfInString/IfNotInString, за исключением того, что поддерживается список искомых строк (любая из которых может привести к совпадению).
Чтобы сделать поиск чувствительным к регистру, можно использовать команду StringCaseSense On.
Прим. переводчика: для русских букв поиск по умолчанию чувствителен к регистру. Чтобы сделать его нечувствительным, нужно предварительно выполнить команду StringCaseSense, Locale. Это поможет, если локаль текущего пользователя — русская.
Если MatchList длинный, он может быть разбит на более короткие строки при помощи секции продолжения, что может улучшить читабельность скрипта.
Операторы "between", "is", "in" и "contains" не поддерживаются в выражениях.