我需要一些帮助来创建正则表达式。
我需要获取第一个关键字和最后一个关键字之间的所有单词。
假设第一个关键字是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 在
尝试对中间的单词进行非贪婪匹配:
(\s*All (\w|\s)+?( At))
注意添加的?符号。这应该告诉正则表达式引擎返回该(\w|\s)+部分的最短匹配,希望产生您需要的结果。
在之前缩短您的字符串:
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"