解析ifconfig输出内容的正则表达式

使用boost::regex库,首先安装libboost-regex-dev # sudo apt-get install libboost-regex-dev #include <deque> #include <iostream> #include <algorithm> #include <boost/regex.hpp> using namespace boost; using namespace std; int main() { string str = "" " eth1 Link encap:Ethernet HWaddr 00:E0:4C:9E:B5:EF\n" " inet addr:192.168.0.193 Bcast:192.168.0.255 Mask:255.255.255.0\n" " inet6 addr: fe80::2e0:4cff:fe9e:b5ef/64 Scope:Link\n" " UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1\n" " RX packets:25608 errors:0 dropped:0 overruns:0 frame:0\n" " TX packets:23396 errors:0 dropped:0 overruns:0 carrier:0\n" " collisions:0 txqueuelen:1000\n" " RX bytes:27459152 (26.1 MiB) TX bytes:3307863 ( 3.1 MiB)\n" " Interrupt:11 Base address:0xec00\n"; string exp = "" "\s+hwaddr\s+(.{17})" "\s+inet addr:(\d+.\d+.\d+.\d+)" ".mask:(\d+.\d+.\d+.\d+)" ".(\w{2})\s+broadcast.mtu:(\d+).metric:(\d+)" ".packets:(\d+)\s+errors:(\d+)\s+dropped:(\d+)\s+overruns:(\d+)\s+frame:(\d+)" ".packets:(\d+)\s+errors:(\d+)\s+dropped:(\d+)\s+overruns:(\d+)\s+carrier:(\d+)" ".bytes:(\d+).bytes:(\d+)"; regex expressionextended | regbase::icase; deque result; regex_splitback_inserter(result), str, expression; //copy(result.begin(),result.end(),ostream_iterator(cout,"\n"));...

2006-10-16 · wuan