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]+)";