我创建了一个程序,该程序从油灰中获取字符串,并从该字符串中获取processID,从而杀死了processID。目前,它工作正常,但有时不可靠。

请在下面找到目标和正则表达式。

目标字符串:root 14139 1 25 Aug03 ? 06:47:50 /usr/local

我使用的RegEx:\\\d{3,5}

我想获得RegEx,它可以找到root之后的立即数,而忽略其他文本。 (例如,我想从示例字符串中提取14139,以删除所有多余的空间。)

我该怎么做?

最佳答案

因此,您需要第二个字段中以空格分隔的数字。以下正则表达式在捕获组中将其获取:

^\S+\s+(\d+)


演示:https://regex101.com/r/bE7xL8/1

以及示例Java代码:

String input = "root 14139 1 25 Aug03 ? 06:47:50 /usr/local";
Pattern pattern = Pattern.compile("^\\S+\\s+(\\d+)");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
    System.out.println(matcher.group(1));
}


演示:https://ideone.com/LVLCNm

07-28 01:22
查看更多