我具有以下模式来验证字符串,它必须验证 4个字母, 6个数字, 6个字母和 2个字母数字,但是按照我目前的模式,我无法获得有效的测试
Pattern.compile("[A-Za-z]{4}\\d{6}\\w{6}\\[A-ZÑa-zñ0-9\\- ]{2}");
我认为我的模式是错误的,因为我对这个[A-ZÑa-zñ0-9\\- ]{2}
你能帮我吗?
答案 0 :(得分:1)
您可以使用模式:
SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1;
实时检查它here。
在您的表达式中,您使用的是^[a-zA-Z]{4}[0-9]{6}[a-zA-Z]{6}[a-zA-Z0-9]{2}$
,它不仅匹配数字和字母字符,而且还下划线\w+
。
答案 1 :(得分:1)
正则表达式上有一些问题。
您的数字和单词匹配中有多余的反斜杠。从char commandReply[512];
if(sendCommand(myFileDescriptor, "AT+CGNSINF\r", "\r\nOK\r\n", commandReply)){
//do something with commandReply or not
} else {
//command failed
//do something else
}
更改为\\d
,从\d
更改为\\w
。
不需要\w
。
您的正则表达式语法无效。只需移除\\
位即可。
您还可以将初始部分缩小为"\\- "
,而不是\w
。因此,您是新的正则表达式应如下所示:
[A-Za-z]
如果您可以接受,那么最后两个字母数字中唯一的非ASCII字符为Ñ和ñ。