Java 从文件中写入的行中获取特定字符串

Java 从文件中写入的行中获取特定字符串,java,string,Java,String,我有一个文件,从中我逐行读取,我编写了一个代码,用于获取字符串的某一部分(从该行中),该部分位于两个特定单词之间,例如 [abc] long time ago [cde] 现在,我已经编写了以下代码来获取字符串 if (line.contains("[abc]") && line.contains("[cde]")) { int b = line.indexOf("abc"); int cc = line.indexOf("cde"); String t

我有一个文件,从中我逐行读取,我编写了一个代码,用于获取字符串的某一部分(从该行中),该部分位于两个特定单词之间,例如

[abc] long time ago [cde]
现在,我已经编写了以下代码来获取字符串

if (line.contains("[abc]") && line.contains("[cde]")) {
    int b = line.indexOf("abc");
    int cc = line.indexOf("cde");
    String tk = line.substring(b + 4, cc);
    System.out.println(tk);
}
这段代码运行良好,但现在的问题是

[abc] long time ago [cde]    [abc] Everyday is a new day [cde]

现在,请告诉我如何获得这两个字符串。。。因为它们位于同一行,我的代码只考虑第一行…

使用正则表达式,因为它们将匹配给定字符串的每一次出现。

文件是否会有重叠的标记?也就是说,
[abc]很久以前[abc]每天[cde]都是新的一天[cde]
@不,它们没有重叠。@MΓ。。。很久以前,它一直在重复…:(问题出在其他地方,这一部分对我很有用。
while (line.contains("[abc]") && line.contains("[cde]")) {
    int b = line.indexOf("abc");
    int cc = line.indexOf("cde");
    String tk = line.substring(b + 4, cc);
    System.out.println(tk);
    line = line.substring(cc + 4);
}