2011-08-28 51 views
2

我想把整行作为我的输出。例如,当我输入kp1 我希望整行CVBN ....返回。正则表达式Java,返回整行?

begin abc 
CVBN(r,t,t) + PPP(l,r) <-> ZEK(r!1).R(l!1,r) kp1,km1 
TNBC(l,r) + SSR(r,t,t) <-> KPT(l,r!1).XXXX(l,r!1) kp2,km2 
TLCX(l!+,(r,t,t)) + VV(l!+,r) <-> BB(l!+,r!1).R(l!+,r!1) kp3,km3 
end abc 

我试过如下:

Pattern pattern = Pattern.compile("kp1"); 
Matcher matcher = pattern.matcher(mytextFromAbove); 

// Find all matches 
while (matcher.find()) 
{ 
    // Get the matching string 
    match = matcher.group(); 
} 

这只能返回字符串KP1。 任何帮助真的很感激。

谢谢。

+0

令人惊讶的是,它让我感到惊讶。除非接口发生了显着变化,否则它看起来好像使用长文本_作为正则表达式_并搜索它在字符串“kp1”中描述的内容。 –

+0

谢谢..我纠正了......但仍然无效。 – RnD

回答

5

将您的表情更改为^.*kp1.*$

+2

你也应该启用'MULTILINE'为你的模式:'... Pattern.compile(“^。* kp1。* $”,Pattern.MULTILINE);' –

+0

为什么他需要多行,如果他匹配一行? –

+0

@MK:如果您不指定多行,那些锚符合输入的开始和结束,而不是一行。 –