首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex -在第一次匹配后获取第二个单词

Regex -在第一次匹配后获取第二个单词
EN

Stack Overflow用户
提问于 2019-07-02 05:51:38
回答 3查看 397关注 0票数 0

我正在尝试解析一个简单的DDL语句。首先,我尝试提取表名。语法将类似于'CREATE TABLE DB_NAME.TABLE_NAME‘

到目前为止,我得到了以下信息:

代码语言:javascript
复制
String line = "CREATE TABLE DB_NAME.T_NAME";
String pattern = ".*?\\bTABLE\\s+(\\w+)\\b.*";
System.out.println(line.replaceFirst(pattern, "$1"));

这让我又回到了"DB_NAME“。我怎么才能让它把"T_NAME“还给我呢?

我尝试在this answer中跟踪更新,但我不能让它工作,可能是因为我的正则表达式技能非常有限。

EN

Stack Overflow用户

发布于 2019-07-02 06:07:31

下面是一小段代码(使用命名捕获组):

代码语言:javascript
复制
String line = "CREATE TABLE DB_NAME.T_NAME";
Pattern pattern = Pattern.compile("CREATE TABLE (?<database>\\w+)\\.(?<table>\\w+)");
Matcher matcher = pattern.matcher(line);
if (matcher.matches()) {
    String database = matcher.group("database"); // DB_NAME
    String table = matcher.group("table"); // T_NAME
}
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56842894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档