Мне нужно обработать пользовательский ввод как строку с помощью Matlab. Я точно знаю, как может отображаться допустимая строка, но я не знаю, как использовать регулярные выражения для проверки допустимых строк. Я хотел бы вернуть true
для правильных входных строк и false
в противном случае.Matlab соответствует строке с регулярным выражением
Допустимые входы начать с буквы s
или b
с последующим пробелом, а затем содержать число от 1 до 20. Примеры для действительных строк следующим образом:
's 14'
'b 7'
'b 20'
Примеры для недействительных строк следующим образом:
's 24' % number too large
's14' % missing space
'x 13' % wrong letter
'b 111' % number too large/also 3 digits for the number, where only 1 to 2 are allowed.
Я начал с этой строки кода, который, кажется, близки к решению, но не совсем:
regexp('s 26', '[sb] [1-20]', 'match')
Не получается, так как он видит s 2
как положительное, но на самом деле вход s 26
недействителен.
Спасибо, кажется, сработало. Можете ли вы объяснить свои мысли по этому поводу? – Nras
Это: [1-9] | 1 [0-9] | 20: любой из 1-9 ИЛИ фиксированный 1, объединенный с любым 1-9 ИЛИ 20? – Nras
'(?: S | b)' == '[sb]' –