我需要一个正则表达式来匹配以下来源中的第一个单词:
WanRoutingProtocol=
Static
192.160.22.0/27
false
2004:BA2:78::50
=IAS
我只想在java中使用正则表达式提取第一个单词(在本例中为“Static”)。
空白行包含多个换行符。
我正在使用以下正则表达式
"^(\\n)+Static.*IAS"
但这不起作用。
答案 0 :(得分:1)
使用以下正则表达式。表达式假设输入始终以关键字" WanRoutingProtocol"开头和结尾。和" IAS"并将获取在"静态"。
的地方出现的任何关键字^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"
}