允许在Java中使用空格字符的正则表达式
嘿,大家好,所以我试着允许一些文本输入在发送之前通过正则表达式检查。我希望文本仅包含A-Z、0-9和空格“”字符。这是我现在的代码:允许在Java中使用空格字符的正则表达式,java,regex,Java,Regex,嘿,大家好,所以我试着允许一些文本输入在发送之前通过正则表达式检查。我希望文本仅包含A-Z、0-9和空格“”字符。这是我现在的代码: if(!title.matches("[a-zA-Z0-9_]+") { //fail } else { //success } 但是,当我输入类似“这是一个测试”的内容时,仍然会给出//fail结果 有什么想法吗?谢谢大家。您没有在正则表达式中包含空格。请尝试以下操作: if (!title.matches("[a-zA-Z0-9 ]+"))
if(!title.matches("[a-zA-Z0-9_]+") {
//fail
}
else {
//success
}
但是,当我输入类似“这是一个测试”的内容时,仍然会给出//fail
结果
有什么想法吗?谢谢大家。您没有在正则表达式中包含空格。请尝试以下操作:
if (!title.matches("[a-zA-Z0-9 ]+"))
\s
允许使用任何ASCII空白字符。考虑使用它而不是“”。
否,
\s
仅适用于7位数据。它在Java的本机字符集上不起作用。这对我来说是新闻!我想我应该更小心一点。这就是标准Java正则表达式库的问题。它不适用于Java自己的字符集!你必须把JNI交给ICU,才能得到任何能正常工作的东西——我的意思是,作为最低要求,基本的Unicode功能符合1级的要求。Java并没有满足大多数这些要求,更不用说在2级或3级领域的任何更高要求了。这就是为什么谷歌为Android做了JNI到ICU的事情。他们需要Unicode支持。啊。。。我想这个uu表示一个“”。那么简单的[a-zA-Z0-9]+
就可以了吗?是的\u
是文字下划线。这似乎是你不想要的。我已经更新了我的示例。完美。非常感谢你。
if(!title.matches("[a-zA-Z0-9_\s]+")) {
//fail
}
else {
//success
}