【发布时间】:2015-02-05 13:09:38
【问题描述】:
嗨,我有以下字符串
abc test ...
interface
somedata ...
xxx ...
!
sdfff as ##
example
yyy sdd @# .
!
我有一个要求,我想在包含单词“interface”或“example”的行与行“!”之间查找内容。
所需的输出如下所示
String[] output= {"somedata ...\nxxx ...\n","yyy sdd @# .\n"} ;
我可以使用 substring 和迭代手动执行此操作。但我想使用正则表达式来实现这一点。 有可能吗?
这是我尝试过的
String sample="abc\ninterface\nsomedata\nxxx\n!\nsdfff\ninterface\nyyy\n!\n";
Pattern pattern = Pattern.compile("(?m)\ninterface(.*?)\n!\n");
Matcher m =pattern.matcher(sample);
while (m.find()) {
System.out.println(m.group());
}
我说的对吗?请提出正确的做法。
编辑:
一个小变化:我想在“interface”或“example”行和“!”行之间查找内容。
我们也可以使用正则表达式来实现这一点吗?
【问题讨论】:
标签: java regex string substring