java - 为了在 Java 的正则表达式中执行此操作,需要转义或进一步更改什么?

标签 java regex

我有以下代码行:

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

生成的Matcher不包含匹配项,或更重要的是,不包含表名称。

我需要更改什么才能获得组 1 中的“DeliveryPointAddress” 的匹配项?

最佳答案

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

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

Note that find() returns a boolean indicating whether a match was found, so normally you would do something along the lines of

if (matcher.find()) {
    System.out.println(matcher.group(1));
}

但是想法是一样的:首先调用find()!

关于java - 为了在 Java 的正则表达式中执行此操作,需要转义或进一步更改什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19062136/

相关文章:

java - 如何在java中保护URL参数

java - 如何在java中从单个字符串创建集合<String>?

java - 如何在 Java 中显示 N x N 随机数矩阵?

php - 在PHP中逐列读取rpt文件内容

python - 在 Python 中使用正则表达式从 JSON 响应中提取数据

java - Clojure:我可以使用什么正则表达式来检测多行字符串中一行的最后一个字符?

java - Apache Mina SSHD 认证和加密

java - jvm 中是否有任何缓存或如何加速有时需要更长时间的方法?

java - 如果找到字符,则忽略字符后的字符串

MYSQL REGEXP 查询关键字列