我创建了一个程序,该程序从油灰中获取字符串,并从该字符串中获取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