我想在java中匹配特定文本的正则表达式模式。在匹配时我需要以相反的顺序找到匹配。
示例:
Expected output -- 1st match --->[green]
2nd match --->[red]
3rd match --->[blue]
但我希望匹配顺序相反。
{{1}}
请帮助如何形成正则表达式以实现预期的输出。
答案 0 :(得分:0)
Reverse regular expression in Java讨论了这个主题,我在那里发布了一个解决方案,为方便起见,这里添加了一个解决方案。
如果有人对Java解决方案感兴趣,我实现了一个库就可以做到这一点。 https://github.com/vsch/reverse-regex。
处理所有有效的Java regex构造,并提供实用程序类来包装模式,匹配器和输入以进行反向搜索,以处理所有需要的映射和反转。
答案 1 :(得分:0)
假设您已遵守正则表达式日期"
ArrayList<String> strings = new ArrayList<>();
Matcher foo = date.matcher("foo");
while (foo.matches()) {
strings.add(foo.group());
}
Collections.reverse(strings);