首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中,如何使用regex从字符串中的一个位置找到最后3个单词?

在java中,如何使用regex从字符串中的一个位置找到最后3个单词?
EN

Stack Overflow用户
提问于 2014-01-17 17:54:56
回答 1查看 275关注 0票数 1

在java中,使用regex如何从字符串中的一个位置找到最后3个单词,例如,我有一个字符串。

它位于巴拉伊姆巴拉附近,在连接的道路上矗立着一个名为鲁米·达瓦扎的宏伟门户。这座建筑也被称为灯光宫,因为它的装饰和吊灯在特殊的节日,如穆哈拉姆

我想在"Rumi Darwaza“之前找到最后三个词,我已经找到了,并且在字符串中有第50位。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-17 18:01:00

首先,使用substring砍掉不需要的字符串部分。然后应用一个正则表达式,该表达式捕获字符串结尾前的最后三个单词:

代码语言:javascript
复制
"\\s(\\S+)\\s(\\S+)\\s(\\S+)\\s*$"

这将把最后三个单词放入regex的三个捕获组中。

代码语言:javascript
复制
String str = "It is situated near the Bara Imambara and on the connecting road stands an imposing gateway known as Rumi Darwaza. The building is also known as the Palace of Lights because of its decorations and chandeliers during special festivals, like Muharram";
int index = str.indexOf("Rumi Darwaza");
Matcher m = Pattern.compile("\\s(\\S+)\\s(\\S+)\\s(\\S+)\\s*$").matcher(str.substring(0, index));
if (m.find() && m.groupCount() == 3) {
    for (int i = 1 ; i <= 3 ; i++) {
        System.out.println(m.group(i));
    }
}

以上输出的结果如下:

代码语言:javascript
复制
gateway
known
as

关于理想的演示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21192636

复制
相关文章

相似问题

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