【发布时间】:2017-02-19 07:02:39
【问题描述】:
我正在使用 inputstreamer 来检索 shell 命令的输出,该命令连续运行并提供输出。
我已经设法通过在此处打印来隔离 shell 输出的一部分:System.out.println(inputStr.substring(inputStr.lastIndexOf(" ")+1));
但是,我想将输出存储在两个数组中的任何一个中,具体取决于 shell 输出的表达式。
假设我们有两个遵循以下语法的 shell 输出:IP 192.168.0.12.4588 > 212.98.120.24.443 psx 4488 作为第一个,相反:IP 212.98.120.24.443 > 192.168.0.12.4588 psx 12
从上面的打印中,我可以隔离并打印4488 和12。但如果 192.168.0.x.x 是第一个 IP,则值 4448 将存储在特定数组中。同样,如果 > 192.168.0.x.x 在另一边,我想将值 12 存储在不同的数组中。
我该怎么做?
【问题讨论】:
-
你可以使用
regex... -
我现在正在阅读正则表达式。您将如何使用正则表达式来区分
>192.168.0.XX.XXX 的哪一侧在上? xx.xxx 可以随时更改。只有 192.168.0 是恒定的 :) -
您可以解析整个输入的对象,例如 (ip, left_side, right_side,psx, number),然后比较您的左侧是否以 192.168.0 开头