我有以下代码行:
Matcher matcher = Pattern.compile("CREATE TABLE ([^ ]*) \\(").matcher("CREATE TABLE DeliveryPointAddress (");
结果Matcher
不包含匹配项,或者更重要的是,不包含表名。
我需要更改哪些内容才能在第1组的"DeliveryPointAddress"
上获得匹配?
答案 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()
!