首页 > 解决方案 > Java 正则表达式返回最后一个字

问题描述

String regex = "(some|text|)";

    Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(input);
    while (matcher.find())
    {
        int start = matcher.start();
        int end = matcher.end();
        System.out.print("Start index: " + start);
        System.out.print(" End index: " + end + " ");
        System.out.println(matcher.group());
    }

嗨,我想返回完整的子字符串,包括单词的末尾。例如,

如果输入是:

String input = "I am a texte";

我希望它返回 7 11,我基本上希望将文本返回到“e”而不是“t”。这可能吗?如果是这样,如何实施?

标签: javaregexmatcher

解决方案


为什么要为此使用正则表达式?String 具有lastIndexOf来查找分隔符的最后一个索引(如空格),看起来您不是在尝试查找“单词”而是“在最后一个空格之后的子字符串”(这在许多情况下并不相同,许多语言),因此,只需使用:

String last = input.substring(input.getLastIndexOf(' ') + 1);

(可选为两行,检查是否getLastIndexOf是一个合理的位置),完成了吗?


推荐阅读