Perl / Regex解析一个字符串

时间:2011-10-25 20:23:38

标签: regex perl parsing

我是Perl的新手,有点难以解析traceroute的行。这是我受到挑战的典型输出。

 3  someURL.net (184.106.126.128)  0.579 ms someURL.net (184.106.126.124)  0.742 ms  0.719 ms

注意第一和第二路由如何使用不同的IP地址。 这会改变;例如,有时候啤酒花会像这样使用所有相同的东西:

3  someURL.net (184.106.126.128)  0.579 ms  0.742 ms  0.719 ms

... ,每一跳可以有不同的路线,它们都可以是相同的。我想在Perl中使用一些正则表达式等来格式化输出,如下所示:

3|url~ip~time|url~ip~time|url~ip~time

我不确定我是否应该以某种方式遍历各个单词,或者使用正则表达式更容易完成所有单词。任何解决方案或提示表示赞赏。

2 个答案:

答案 0 :(得分:5)

为perl使用traceroute模块会不会更容易?您是否有任何理由需要解析原始traceroute输出? (如果只是作为学习正则表达式的练习,当然......但是?)

Net::Traceroute就是我要用的。

答案 1 :(得分:0)

这个正则表达式是否正常工作

((\w+?\.\w+?)\ (\(\d+?\.\d+?\.\d+?\.\d+?\))(\ \d+?\.\d+?\ ms)+\ )+
     URL                  IP                    TIME