1 (изменено: alekksss, 2016-09-19 23:14:29)

Тема: AHK: RegExMatch | Caps Lock

Приветствую.
Столкнулся с такой проблемой. Мой скрипт читает опеределенный текст. Допустим:

String := "STRING CAPS LOCK **!@41"

Мне нужно определить, является строка в верхнем регистре. Проблема в том что:

RegExMatch(String, "([A-ZА-Я]+)")

Находит только первое слово, если добавить проблел, то всё до какого-либо символа. Нужно чтобы скрипт читал всю строку не обращая внимания на символы и пробел.
ПС: Если в строке есть символы нижнего регистра - ничего не должно происходить.

2

Re: AHK: RegExMatch | Caps Lock

String := "STRING CAPS LOCK **!@41"
if RegExMatch(String, "^[^a-zёа-я]+$") != 0
   msgbox upper

3 (изменено: alekksss, 2016-09-20 00:32:59)

Re: AHK: RegExMatch | Caps Lock

Malcev Я пытался идти этим путем. Проблемы следующие:
- Если String - цыфры, реагирует
- Если String - символы - реагирует

4

Re: AHK: RegExMatch | Caps Lock

А что надо?

5

Re: AHK: RegExMatch | Caps Lock

Malcev пишет:

А что надо?

Чтобы реагировал только на капс. Если сообщение капсом - действие. Только текст.

6

Re: AHK: RegExMatch | Caps Lock

String := "STRING CAPS LOCK **!@41"
if RegExMatch(String, "^[^a-zёа-я]*[A-ZЁА-Я][^a-zёа-я]*$") != 0
   msgbox upper

7

Re: AHK: RegExMatch | Caps Lock

Malcev Вроде то что надо. Спасибо!

8 (изменено: Malcev, 2016-09-20 01:11:19)

Re: AHK: RegExMatch | Caps Lock

Тогда ещё надо добавить проверку присутствия букв, так-как:

- Если String - цыфры, реагирует
- Если String - символы - реагирует

String := "41"
StringUpper StringUpper, String
if (String == StringUpper)
	MsgBox upper

9

Re: AHK: RegExMatch | Caps Lock

Нашел идельное решение.

capsMsg := RegExReplace(ochatMsg, "[^A-ZА-ЯЁ]")
		nocapsMsg := RegExReplace(ochatMsg, "[^а-яa-zё]")
;		StringUpper, CapsText, ochatMsg ochatMsg == CapsText && 
		if(strlen(capsMsg) < strlen(nocapsMsg) || strlen(capsMsg) < 4)
			continue

Сначала получаем все символы капсом ([^A-ZА-ЯЁ])
Затем всё что в нижнем регистре ([^а-яa-zё])
Получаем ЧИСТЫЙ текст. Без пробелов, символов и прочего мусора.
Мне требовалось что если больше чем половина символов капс - действие.
Разработчику спасибо. Натолкнул на мысль.

10

Re: AHK: RegExMatch | Caps Lock

stealzy, нет. Для игры нужно было. Но создал тут, тк вопрос касался регулярки, а не игры

11

Re: AHK: RegExMatch | Caps Lock

alekksss, если код используется для автоматизации игр, размещаем его здесь, не важно, чего он касается. Попробуйте запомнить это правило.

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

12

Re: AHK: RegExMatch | Caps Lock

teadrinker Понял