需要转义或进一步更改才能在Java正则表达式中执行此操作?

时间:2013-09-28 00:57:22

标签: java regex

我有以下代码行:

Matcher matcher = Pattern.compile("CREATE TABLE ([^ ]*) \\(").matcher("CREATE TABLE DeliveryPointAddress (");

结果Matcher不包含匹配项,或者更重要的是,不包含表名。

我需要更改哪些内容才能在第1组的"DeliveryPointAddress"上获得匹配?

1 个答案:

答案 0 :(得分:5)

我不是通灵者,但我相信你的问题是你在查询匹配器之前没有调用find()

Matcher matcher = Pattern.compile("CREATE TABLE ([^ ]*) \\(").matcher(
                "CREATE TABLE DeliveryPointAddress (");
matcher.find();
System.out.println(matcher.group(1));
DeliveryPointAddress

请注意find()返回一个布尔值,表示是否找到了匹配项,所以通常你会按照

的方式做一些事情。
if (matcher.find()) {
    System.out.println(matcher.group(1));
}

但这个想法是一样的:首先打电话给find()