首先能匹配和完全匹配是不一样的 a123 能被\d匹配吗 能 所以应该改为^\d+$
2.我用正则表达式帮你写个 你自己改成宿主语言的表达方式
^[^ ]*$ 不包含空格的字符串 有可能是空串
^\d+$ int数据最少一位
^\d+(\.\d+)?$ double数据可能没有小数部分
^[BS]$ 只有大写的B或S