文件display.props的内容,通过.xml加载
Alter User SA set password somepassword;
现在我想读取此文件并获取显示数字(20)
Xvfb Display Properties
Wed Jul 27 18:31:50 CEST 2016
DISPLAY=\:20
XAUTHORITY=/tmp/Xvfb4443942380574278711.Xauthority
然而,这场比赛和我尝试过的所有其他比赛都没有用,有什么想法吗?
答案 0 :(得分:0)
使用String#replaceALl()
==>尝试正则表达式replaceAll("(?s).*DISPLAY=.*?(\\d+).*", "$1")
System.out.println(s.replaceAll("(?s).*DISPLAY=.*?(\\d+).*", "$1"));
O / P:
20
答案 1 :(得分:0)
您的代码有两个问题,首先是您使用标记为DOTALL的贪婪运算符,因此您将匹配不同的字符串(11
而不是20
)。您可以通过使用未授权的运算符.*?
或仅删除DOTALL标志来解决此问题。
此外,第二个问题是您必须使用m.group(1)
从捕获群组中抓取捕获的内容:
String xvfbPropsFile = "Xvfb Display Properties\n" +
"Wed Jul 27 18:31:50 CEST 2016\n" +
"DISPLAY=\\:20\n" +
"XAUTHORITY=/tmp/Xvfb4443942380574278711.Xauthority";
Pattern p = Pattern.compile("DISPLAY.*([0-9][0-9])");
Matcher m=p.matcher(xvfbPropsFile);
if (m.find()){
System.out.println(m.group(1)); // group 1 contains 20
}
<强> IdeOne demo 强>