0

我需要一个正则表达式来匹配以下来源中的第一个单词:

WanRoutingProtocol=
     Static



              192.160.22.0/27
              false

           2004:BA2:78::50


  =IAS

我只想使用java中的正则表达式提取第一个单词(在本例中为“静态”)。

空行包含多个换行符。

我正在使用以下正则表达式

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

但这不起作用。

4

1 回答 1

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"
}
于 2013-05-06T09:48:18.753 回答