/So我在Java中使用这个正则表达式只允许字母或数字作为用户输入:
if (!string.matches("[a-zA-Z0-9]*")) {
//Not allowed
}这就解决了问题,我已经检查了这个元素是否存在,所以不需要检查它是否为空。只有0或更多匹配的字符。
在进行此检查之后,用户输入将存储到XML文件中。不知何故,用户能够在这个正则表达式之后获得一个空字符,因此在试图读取文件时,我会得到以下错误:
(0x0)不允许特殊字符
所以我很好奇,能绕过这种正则表达式吗?或者这肯定是其他原因造成的?目前,这看起来是最有可能的原因,但我不确定我是否正确地使用了正则表达式。
发布于 2016-04-22 13:58:22
*量词匹配在0到无限倍之间,尽可能多次匹配,并根据需要返回。空字符串可以通过你的正则表达式。
示例:https://regex101.com/r/jZ2hI7/1 (请注意,它为1匹配空文本)
发布于 2016-04-22 14:02:05
将[a-zA-Z0-9]*更改为[a-zA-Z0-9]+。星号("*")将允许零字符。
https://stackoverflow.com/questions/36795724
复制相似问题