为了账号安全,请及时绑定邮箱和手机立即绑定

Java-抓住两个字符串之间的所有字符串的最佳方法?(正则表达式?)

Java-抓住两个字符串之间的所有字符串的最佳方法?(正则表达式?)

慕容森 2019-10-19 16:06:11
这个问题困扰了我很久了,但从本质上讲,我正在寻找最有效的方法来捕获两个String之间的所有String。我已经使用了许多个月的方法是通过使用一堆临时索引,字符串,子字符串,这确实很麻烦。(为什么Java没有诸如此类的本地方法String substring(String start, String end)?说我有一个字符串:abcabc [pattern1]foo[pattern2] abcdefg [pattern1]bar[pattern2] morestuff最终目标是输出foo和bar。(并稍后添加到JList中)我一直在尝试将regex并入,.split()但没有成功。我已经尝试过使用*'s和.'s 语法,但我认为这并不是我的意图,特别是因为.split()只需要拆分一个参数。否则,我认为另一种方法是使用Pattern和Matcher类?但是我对适当的程序真的很模糊。
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

尝试这个:


String str = "its a string with pattern1 aleatory pattern2 things between pattern1 and pattern2 and sometimes pattern1 pattern2 nothing";

Matcher m = Pattern.compile(

                            Pattern.quote("pattern1")

                            + "(.*?)"

                            + Pattern.quote("pattern2")

                   ).matcher(str);

while(m.find()){

    String match = m.group(1);

    System.out.println(">"+match+"<");

    //here you insert 'match' into the list

}

它打印:


> aleatory <

> and <

> <


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 1009 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信