1

我是正则表达式的新手。请纠正我在下面的代码中哪里做错了。另外请推荐一些 Java-Regex 中的好书/教程。

public class regexx {
public static void main(String[] args) {
    // TODO Auto-generated method stub
    String s = "Bug 2742";
    if("^Bug [0-9]*".matches(s)){
        System.out.println("eq");
    }else {
        System.out.println("nq");
    }
}
}

我期待“eq”作为输出。但匹配返回错误。

4

2 回答 2

3

正则表达式应该是参数 http://www.tutorialspoint.com/java/java_string_matches.htm

s.matches ("^Bug [0-9]*")
于 2013-08-31T09:30:40.387 回答
2
public boolean matches(String regex)

String#matches() 将正则表达式作为参数,string而不是您正在执行的操作。

你在申请时正在做相反的事情regex

为了澄清,我分开了那条线。

尝试

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s = "Bug 2742";
        boolean matches = s.matches("^Bug [0-9]*");
        if(matches){
            System.out.println("eq");
        }else {
            System.out.println("nq");
        }
    }
于 2013-08-31T09:33:51.233 回答