正则表达式和中文

时间:2012-05-24 23:18:22

标签: android regex database

我有一个基于用户输入的数据库查询,但是如果用户在搜索中输入任何一个公共字母,应用程序将崩溃。但由于搜索也支持中文字符,我不能简单地阻止所有字符搜索。

我如何编写正则表达式来检查单个英文字符但不包含单个中文字符? “^(a-zA-Z){1} $”“^ \ w {1} $”这些只包括英文字母吗?

我正在考虑使用这样的正则表达式,但是任何更好的解决方案都会受到赞赏:

if(input.matches("^(a-zA-Z){1}$")
{
  //Show error
}
else
{
 //do query 
}

1 个答案:

答案 0 :(得分:1)

你应该先修复任何崩溃。要区分英语和中文(CJK)字符,可以使用字符类,例如\p{ASCII}\p{Alpha}表示ASCII,\p{InCJKUnifiedIdeographs}表示CJK字符。