用于检查字符串第一个字母的Reg表达式是Android中的字母表

用于检查字符串第一个字母的Reg表达式是Android中的字母表,android,regex,Android,Regex,你们能帮我找到一个正则表达式来确定字符串的第一个字母是否是字母表吗 这里我的要求是阻止用户在编辑文本中键入除字母以外的其他字符作为第一个字母。例如 edtTxtFirstname.setFilters(new InputFilter[] { new InputFilter.LengthFilter(30), new CharacterInputFilter(Pattern.compile("^[a-zA-Z]")) }); 谢谢 JRH检查此项

你们能帮我找到一个正则表达式来确定字符串的第一个字母是否是字母表吗

这里我的要求是阻止用户在编辑文本中键入除字母以外的其他字符作为第一个字母。例如

edtTxtFirstname.setFilters(new InputFilter[] {
            new InputFilter.LengthFilter(30),
            new CharacterInputFilter(Pattern.compile("^[a-zA-Z]")) });
谢谢

JRH检查此项

 String strRegExpr= "[a-zA-Z]";

        if (youstr.matches(strRegExpr))
        {
            // your entered value is Alphabetic
            Log.i("Character is Alphabate", "Check this"+yourstr);
        }
        else
        {
            // your entered value is Numeric
            Log.i("Character is Numaric", "Check this"+yourstr);
        }

像这样创建您自己的过滤器

InputFilter myFilter = new InputFilter() {

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

        if (dstart == 0) {
            try {
                Character c = source.charAt(0);
                if (Character.isLetter(c) && Character.isUpperCase(c)) {
                    return null;
                } else {
                    if (Character.isLetter(c) && Character.isLowerCase(c))
                        return "" + Character.toUpperCase(c);
                }
            } catch (Exception e) {
            }
        }
        return null;
    }
};
editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(30), myFilter });

你真的需要一个正则表达式吗?@devnull,除了TextWatcher之外,还有什么其他选项?我不应该允许用户键入其他字符作为第一个字符。在那之后,我们允许它。嗨,我更新答案检查它。它的工作就像你的要求魅力。第一个字符将自动转换为大写,只有字母表允许输入。