1 (изменено: belyankin12, 2019-03-17 17:21:48)

Тема: AHK: Опция i для кириллицы в шаблоне RegExMatch

Здравствуйте, товарищи. Мне необходимо создать несколько шаблонов, однако как гласит справка опция i в regexmatch бесполезна для шаблона с кириллицей, что я на практике испытал. StringCaseSense, locale не помог. Если для коротких слов ещё можно попытаться составить варианты в шаблоне, то для более длинных уже очень проблематично (см. код ниже). Есть ли какой-нибудь вариант заставить выражение игнорировать регистр русских символов?

RegExMatch(log.str[log.num + 1 - A_Index], "S)\[(.*)\]  (.*)  (.*)\_(.*)\[(.*)\]:  (.*)(SOS|sos|Sos|SOs|SoS|sOs|sOS|soS|СОС|сос|СоС|сОс|Сос|соС|СОс|сОС) ([A-Za-z0-9А-Яа-яЁё_\-]+)(\s?)", che_ck) and (log.find:=log.num + 1 - A_Index) { ; Проблемное слово SOS или СОС
Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

2

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Это где такое справка гласит?

str := "Привет"
MsgBox, % RegExMatch(str, "i)(*UCP)пРИВЕТ")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

teadrinker,

Поиск без учёта регистра, т.е. буквы A-Z считаются идентичными a-z. (Прим. переводчика: для русских букв эта опция не действует.)

К тому же ваш код не работает.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

4

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Как так не работает? А что MsgBox показывает?

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

5 (изменено: belyankin12, 2019-03-17 17:56:51)

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Пустоту: http://prntscr.com/mz1syr. AHK 1.30.01 ANSI 32.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

6

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

А, понятно. Как же вас угораздило ANSI версию установить? Она сейчас только для обратной совместимости предоставляется. UCP — это юникод-опция.

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

7 (изменено: belyankin12, 2019-03-17 17:59:29)

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Несколько лет уже ANSI пользуюсь, юникод некорректно работает в играх, что является моей целевой платформой для применения. На ANSI никак значит?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

8 (изменено: teadrinker, 2019-03-17 18:03:46)

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Наверно нет.

belyankin12 пишет:

юникод некорректно работает в играх

Подозреваю, что это из-за не очень прямых рук. Хотя в этом не спец, конечно.

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

9 (изменено: belyankin12, 2019-03-17 18:07:40)

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Может быть. Но сколько пользуюсь всегда и везде говорили что в этой игре ANSI работает а юникод нет. А теперь уже, когда накопился код на несколько десятков тысяч строк переделывать все не хочется. Да и несколько библиотек вроде как тоже не работают на юнике, но на счёт этого не уверен (может на 32 бит работать будет). В общем не вариант .

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

10

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Перевести строку в нижний/верхний регистр и после regex?

11

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Отличный вариант. Есть какой-то грамотный способ или специальная команда? А то у меня в голове крутится только создание функции с кучей stringreplace.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

12 (изменено: stealzy, 2019-03-17 19:03:19)

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

StringLower/StringUpper.
belyankin12, я и сам название команд не помню, просто открыл раздел String в справке.

13

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

Отлично! Спасибо.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

14

Re: AHK: Опция i для кириллицы в шаблоне RegExMatch

belyankin12 пишет:

Но сколько пользуюсь всегда и везде говорили что в этой игре ANSI работает а юникод нет. А теперь уже, когда накопился код на несколько десятков тысяч строк переделывать все не хочется

Не думаю, что переделать будет сложно.
https://autohotkey.com/docs/Compat.htm#Format