【问题标题】:TextView, EditText and Java regexTextView、EditText 和 Java 正则表达式
【发布时间】:2018-02-25 13:33:49
【问题描述】:

当我的按钮包含 3 个字符时,它应该在 TextView 上从 editText 设置文本。

我使用了 Java 模式,但可能不正确,因为没有任何反应。

有人知道这里出了什么问题吗?

b1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Pattern Pattern = Pattern.compile(".*\\w(3).*");
        Matcher matcher = pattern.matcher(et1.getText().toString());
        if (matcher.matches()) {
            tv1.setText(et1.getText().toString());
        }
    }
});

【问题讨论】:

    标签: java android regex


    【解决方案1】:

    存在语法问题,因为 (3) 将尝试匹配 3 而不是这三个字符, .*\\w(3).* 将匹配任何内容,然后是单词字符,然后是数字 3,然后是任何内容。

    应该是.*\\w{3}.*,其中{}用于定义范围,()用于定义捕获组。

    虽然对于字符,它应该是.*[a-zA-Z]{3}.*,因为\\w 也匹配数字和_

    对于数字使用:.*[a-zA-Z\d]{3}.*

    【讨论】:

    • 是的,我也想要数字,但没有像“_”这样的特殊字符,所以我应该输入 .*[a-zA-Z0-9]{3}.* ?
    • @androidmanifest3 是的,你没看错,或者你可以使用.*[a-zA-Z\d]{3}.*
    猜你喜欢
    • 2015-01-31
    • 2015-12-29
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2013-01-18
    相关资源
    最近更新 更多