伙伴......
我遇到麻烦来通过一个正则表达式接受android中的重音...我们尝试过的所有东西都不能正常运行,并且android不想要我们的重音声音。
我有以下正则表达式:
Pattern pattern = Pattern.compile(“[a-zA-ZñÑáéíóúÁÉÍÓÚ] +”);
如何在Android中包含ñ和口音的任何提示?
非常感谢...
这是我们的验证功能:
public static boolean validarNombres(String nameToValidate){
byte step = 1;
byte minWords = 2;
byte maxWords = 5;
boolean validName = false;
String[] aux;
Matcher matcher = null;
Pattern pattern = Pattern.compile("[\\p{L}\\p{M}]+");
aux = nameToValidate.split(" ");
//PASO 2: check that the name has from 2 to 5 words
if(aux.length >= minWords && aux.length <= maxWords){
step++;
matcher = pattern.matcher(nameToValidate);
}
//PASO 3: check that the name matches out regex
if(step==2 && matcher.matches()){
validName = true;
}
return validName;
}
编辑:想想发现错误......我们没有包括第一个和第二个名字之间的空白......当我们检查一个单词时它工作正常,但不是全名...现在.. ..
什么代码在我们的正则表达式中包含空格?请
非常感谢
答案 0 :(得分:1)
要验证由空格分隔的2到5个单词组成的字符串,可以使用
public static boolean validarNombres(String nameToValidate) {
return nameToValidate.matches("[\\p{L}\\p{M}]+(?:\\s[\\p{L}\\p{M}]+){1,4}");
}
与.matches()
方法一起使用时,默认使用正则表达式进行锚定,无需添加^
和$
。
模式详情:
[\\p{L}\\p{M}]+
- 一个或多个字母或/和变音符号(?:\\s[\\p{L}\\p{M}]+){1,4}
- 1到4(因此,总共2到5个)序列:
\\s
- 一个空白[\\p{L}\\p{M}]+
- 一个或多个字母或/和变音符号请参阅regex demo。