Java正则表达式返回最后一个字

Java正则表达式返回最后一个字,java,regex,matcher,Java,Regex,Matcher,嗨,我想返回完整的子字符串,包括单词的结尾。比如说, 如果输入为: String regex = "(some|text|)"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(input); while (matcher.find()) { int start = matcher.start

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

如果输入为:

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());
    }

我希望它返回711,我基本上希望返回文本到“e”而不是“t”。这可能吗?如果是这样,如何实现这一点?

为什么要为此使用regexp?字符串必须找到分隔符的最后一个索引(如空格),看起来您不是在试图查找“单词”,而是在“最后一个空格后的子字符串”(在许多语言中,不是相同的内容),因此,只要使用:

String input = "I am a texte";

(可选为两行,检查
getLastIndexOf
是否为合理位置),并完成?

您可以使用以下正则表达式:

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

这将包含以某些或文本开头的所有单词。例如:某人。

输入“helpsomeone”如何?我希望它返回“helpsomeone”,即完整的单词和“helpsomeone t”,我希望是“helpsomeone”而不是“helpsomeone t”。这可能吗?@NameName您可以试试这个:String regex=“(.[^\\s+].*some*.[^\\s]+|.[^\\s+].*text*.[^\\s]+)”;我还更新了我的答案:)
  String regex = "(.[^\\s+].*some*.[^\\s]+|.[^\\s+].*text*.[^\\s]+)";