求教一个正则表达式的问题。

求教一个正则表达式的问题。

想提取日志信息里面的各个字段,比如时间,ip地址,优先级之类的,请问大家怎么才能一次性把这些字段提取出来,同时赋给不同的变量,先谢谢了。
my ($date, $ip, $pri) = split ...;
谢谢你,不过数据中还有一些不需要的数据,只是从中截取一些字段,这样也可以吗?


QUOTE:
原帖由 duan101101 于 2008-11-17 22:49 发表
谢谢你,不过数据中还有一些不需要的数据,只是从中截取一些字段,这样也可以吗?

不通用,类似下面格式的可以

[Copy to clipboard] [ - ]
CODE:
2008-11-17 22:52:00 | other filed | 202.106.0.20 | otherfield | 1 | ...
my ($date, undef, $ip, undef, $pri) = split /\|/, $entry;

额,那我的那个问题怎么搞,麻烦你了。


QUOTE:
原帖由 duan101101 于 2008-11-17 23:01 发表
额,那我的那个问题怎么搞,麻烦你了。

不知道你的日志格式是什么样的
恩,明天我找一下,就是如果从一段数据中同时匹配多个数据,一般是怎么做的。
固定长度的,用 unpack
固定分隔符的,用 split
什么都不固定的,用 m//
更加复杂的,用 Text::CSV


QUOTE:
原帖由 flw 于 2008-11-18 00:18 发表
固定长度的,用 unpack
固定分隔符的,用 split
什么都不固定的,用 m//
更加复杂的,用 Text::CSV

Perl的方法真多啊。
恩,谢谢你了