Русское сообщество AutoIt

Общий раздел по AutoIt => Регулярные выражения и прочее => Тема начата: Afonichev от Апрель 11, 2017, 17:51:42

Название: RegExp обязательный пробел
Отправлено: Afonichev от Апрель 11, 2017, 17:51:42
Есть приложение которое обрабатывает команды, есть которое отправляет, нужно распарсить команду так, чтобы был обязательным хотя бы один пробел между ключевыми словами (или более), например:

/login 0526

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

/login 0526
/login                      0526

и неправильно:

/login0526
/login40526
/login 80526

Думал прокатит такое выражение:

Код: AutoIt [Выделить]

Local $sText = '/login 0526'

If StringRegExp($sText, '/login\s+0526') Then
    MsgBox(0, '', 'OK')
EndIf
 


но оно так же срабатывает в случае без пробелов вообще

/login0526

Как сделать хотя бы один обязательный пробельный символ?
Название: Re: RegExp обязательный пробел
Отправлено: inververs от Апрель 11, 2017, 17:57:13
Прямо в регурярку пробел
Название: Re: RegExp обязательный пробел
Отправлено: Afonichev от Апрель 11, 2017, 18:02:50
Да пробовал, по барабану...
Название: Re: RegExp обязательный пробел
Отправлено: inververs от Апрель 11, 2017, 18:08:07
Вот так /login \s*0526 ?
Название: Re: RegExp обязательный пробел
Отправлено: Afonichev от Апрель 11, 2017, 18:14:05
Да
Название: Re: RegExp обязательный пробел
Отправлено: inververs от Апрель 11, 2017, 18:39:59
Вот, https://regex101.com/r/hj3W1V/1 тренируйся
Название: Re: RegExp обязательный пробел
Отправлено: Alofa от Апрель 11, 2017, 22:14:02
... но оно так же срабатывает в случае без пробелов вообще...
Это не так - не срабатывает. Или мы друг друга не поняли, или вы выложили не всю строку.
Только я бы вместо "\s+" использовал "\h+".