Java中正则表达式用法的澄清

Java中正则表达式用法的澄清,java,regex,Java,Regex,我对Regex不熟悉。请纠正我在下面代码中哪里做错了。 另外,请推荐一些Java正则表达式的好书/教程 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");

我对Regex不熟悉。请纠正我在下面代码中哪里做错了。 另外,请推荐一些Java正则表达式的好书/教程

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”作为输出。但是匹配返回false。

正则表达式应该是参数


正则表达式应该是参数

将regex作为参数,而不是执行操作的
字符串

在应用
regex

为了澄清,我将这一行分开

试一试

将regex作为参数,而不是执行操作的
字符串

在应用
regex

为了澄清,我将这一行分开

试一试


Oracle官方教程:非主题:建议使用Java编码约定作为类名。意思是第一个字母是大写字母,因此:
regexx
应该是
regexx
。除了常量(应该都是大写)之外,所有变量和方法都应该是camelCase。遵循这些标准约定可以让其他Java程序员轻松理解您的代码。@izuriel我喜欢这句建设性的评论。:)Oracle官方教程:非主题:建议使用Java编码约定作为类名。意思是第一个字母是大写字母,因此:
regexx
应该是
regexx
。除了常量(应该都是大写)之外,所有变量和方法都应该是camelCase。遵循这些标准约定可以让其他Java程序员轻松理解您的代码。@izuriel我喜欢这句建设性的评论。:)
s.matches ("^Bug [0-9]*")
public boolean 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");
        }
    }