正则表达式:在两个词之间捕获一个词

时间:2020-02-26 00:59:50

标签: java regex regex-lookarounds

让我们说这些是我的投入:

类型数据库xyz {abc}

类型数据库{abc}

我想在两种情况下都捕捉到这一点

数据库

模式是:

“类型” +任意数量的空格+我想要的+任意数量的空格+任何字符

到目前为止,我已经知道了,但是我不确定如何匹配任何字符。 (?<=type)\s+(.*)(?=)

1 个答案:

答案 0 :(得分:1)

我确定您不需要向后看,因为只需匹配并捕获第二个单词即可。

String input = "type Database xyz{ abc }";
Pattern pattern = Pattern.compile("type\\s+(.*?)\\s+.*");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    System.out.println(matcher.group(1));
}

找到单词并打印

Type: Database