使用java regex获取文件中特定单词内的内容

时间:2018-08-29 08:29:41

标签: java regex

我正在尝试使用Java正则表达式组在{{{#!MyTestMacro}}}中获取任何内容,但无法到达那里。基本上,我想删除{{{#!MyTestMacro}}},它们包围其中的内容。 下面是我的代码段。

File file = new File("mytestfile.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String str1 = new String(data, "UTF-8");

String pattern = "\\{\\{\\{\\s*#!MyTestMacro(.*?)\\}\\}\\}";
Pattern r = Pattern.compile(pattern, Pattern.MULTILINE);
Matcher m = r.matcher(str1);
if (m.find()){
    System.out.println("Found value: " + m.group(0));
    System.out.println("Found value: " + m.group(1));
} else {
    System.out.println("NO MATCH");
}
str1 = str1.replaceAll(pattern, m.group(1));
System.out.println(str1);

输入:

{{{#!MyTestMacro

My desired content.
My desired content2.

}}}

预期输出:

  

我想要的内容。我想要的内容2。

0 个答案:

没有答案