2013-05-06 52 views
0

我需要一个正则表达式如下源中的第一个字匹配中匹配一个单词:需要一个正则表达式到一个多源

WanRoutingProtocol= 
    Static 



       192.160.22.0/27 
       false 

      2004:BA2:78::50 


    =IAS 

我只是要提取的第一个字(在此case“Static”)在java中使用正则表达式。

空行包含多个换行符。

我使用正则表达式如下

"^(\\n)+Static.*IAS" 

,但是这是行不通的。

+0

但是第一个词是WanRoutingProtocol,不是吗? – 2013-05-06 09:58:02

回答

1

使用以下正则表达式。表达式假定输入始终以关键字“WanRoutingProtocol”和“IAS”开头和结尾,并且会获取“Static”位置的任何关键字。

^WanRoutingProtocol=\\s*(.*)[\\s\\w\\./:]*=IAS$ 

下面介绍如何在Java中执行此操作。 (没有必要使用Pattern.MULTILINE

String input = "WanRoutingProtocol=\n" + 
    "  Static\n" + 
    "\n" + 
    "\n" + 
    "\n" + 
    "    192.160.22.0/27\n" + 
    "    false\n" + 
    "\n" + 
    "   2004:BA2:78::50\n" + 
    "\n" + 
    "\n" + 
    " =IAS"; 
Pattern p = Pattern.compile("^WanRoutingProtocol=\\s*(.*)[\\s\\w\\./:]*=IAS$"); 
Matcher m = p.matcher(input); 
while (m.find()) { 
    System.out.println(m.group(1)); // prints "Static" 
} 
相关问题