gpt4 book ai didi

java - 如何在带有模式的字符串后找到数字?

转载 作者:行者123 更新时间:2023-11-30 08:03:07 26 4
gpt4 key购买 nike

我正在尝试从 Linux 中的 SSH shell 获取最后的返回代码。我正在使用命令:echo &? 来获取它。我编写了以下代码,但它不起作用:

int last_len = 0;
Pattern p = Pattern.compile("echo $?\r\n[0-9]");
while(in.available() > 0 ) {
last_len = in.read(buffer);
String str = new String(buffer, 0, last_len);
Matcher m = p.matcher(str);
if(m.find()) {
return Integer.parseInt(m.group().substring(9));
}
}

我做错了什么?

最佳答案

您需要在正则表达式中转义 $, ? 以便匹配这些字符的文字形式,因为 ?, $ 在正则表达式中被视为特殊字符。

Pattern p = Pattern.compile("echo \\$\\?\\r?\\n([0-9])");
Matcher m = p.matcher(str);
if(m.find()) {
System.out.println(m.group(1));
}

Pattern p = Pattern.compile("echo\\s+\\$\\?[\\r\\n]+([0-9])");

关于java - 如何在带有模式的字符串后找到数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31580623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com