我对正则表达式很陌生。我有这样的要求,即在第一个方括号中获取内容。
例如如果我有这样的字符串
"PORT-OTEF_RA2/6 [Eh0001/001-06] [忽略,测试端口]",
我需要结果为“Eh0001/001-06”。
我正在使用以下正则表达式。
Pattern pattern =
Pattern.compile("^PORT.+\\[(.*?)\\]");
Matcher matcher =
pattern.matcher("PORT-OTEF_RA2/6 [Eh0001/001-06] [ignore, test port]");
if(matcher.find()){
System.out.println(matcher.group(1));
}
但我总是得到第二个方括号的内容。
但是,如果我将正则表达式指定为
Pattern.compile("\\[(.*?)\\]");
我得到了所需的答案。但我需要确保字符串以“PORT”开头。有人可以指出我哪里出错了。
最佳答案
关于java regex - 无法从第一个方括号中检索内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953969/