Matlab将字符串与正则表达式匹配

时间:2014-10-19 13:31:59

标签: regex string matlab

我需要使用Matlab将用户输入作为字符串处理。我确切知道允许的字符串是什么样的,但我不知道如何使用正则表达式来检查有效的字符串。我想返回true表示有效输入字符串,否则返回false

有效输入以字母sb开头,后跟空格,然后包含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无效。

1 个答案:

答案 0 :(得分:3)

^(?:s|b)\s(?:[1-9]|1[0-9]|20)$

试试这个。看看演示。

http://regex101.com/r/wQ1oW3/14