我需要一些帮助来创建正则表达式 我需要获得第一个关键字和最后一个关键字之间的所有单词。
假设第一个关键字为All
,最后一个关键字为At
。
示例输入:
所有abc abcd abcccc abdd At
输出必须是:
abc abcd abccc abdd
这是我现在正在使用的正则表达式:
(\\s*All (\\w|\\s)+( At))
我的问题是,如果输入是这样的:
所有abc abc abc abc abc At At
输出结果为:
abc abc abc abc abc At
答案 0 :(得分:3)
尝试非贪婪匹配中间的单词:
(\s*All (\w|\s)+?( At))
请注意添加的?
符号。这应该告诉正则表达式引擎返回(\w|\s)+
部分的最短匹配,希望得到你需要的结果。
答案 1 :(得分:0)
在缩小字符串之前:
String toSearchFor = source.substring (source.indexOf ("All"), source.indexOf ("At")+"At".length);
但是,我不知道如何处理
"At At All abc At All def All ghi At jkl At At All"