[问题] python regexp请教

楼主: tonini (没有灵魂的拥抱)   2011-09-07 22:02:48
※ [本文转录自 Python 看板 #1EPsl6ik ]
作者: tonini (没有灵魂的拥抱) 看板: Python
标题: [问题] python regexp请教
时间: Wed Sep 7 21:04:03 2011
我是对Python初级到一个极致
因为工作的关系,需要用到~所以就硬著头皮学了
但是仅限于正规表示式 (regular expression)
我有一段文字档是这样
2011-09-07 20:47:15 10.1.1.1(via UDP: [10.1.1.2]:1344) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.2604.2.1.1.1 Enterprise Specific Trap (2) Uptime: 5:33:28.75
SNMPv2-SMI::enterprises.2604.2.1.1.2.1.2 = Hex-STRING: B1 BD B4 79 20 22 43 3A 5C 44 6F 63 75 6D 65 6E
74 73 20 61 6E 64 20 53 65 74 74 69 6E 67 73 5C
6D 69 63 68 61 65 6C 5C 4C 6F 63 61 6C 20 53 65
74 74 69 6E 67 73 5C 54 65 6D 70 6F 72 61 72 79
20 49 6E 74 65 72 6E 65 74 20 46 69 6C 65 73 5C
43 6F 6E 74 65 6E 74 2E 49 45 35 5C 4A 34 46 30
52 4B 47 48 5C 32 30 31 31 2D 39 2D 35 2D 31 39
2D 39 2D 34 2D 6E 66 31 5B 31 5D 2E 64 6F 63 22
20 A6 5E B6 C7 20 53 41 56 20 49 6E 74 65 72 66
61 63 65 20 BF F9 BB 7E 20 30 78 61 30 30 34 30
32 31 61 A1 47 20 53 6F 70 68 6F 73 20 41 6E 74
69 2D 56 69 72 75 73 20 B5 4C AA 6B C4 7E C4 F2
B6 69 A6 E6 A1 41 B8 D3 C0 C9 AE D7 A5 58 BF F9
A1 43 0D 0A SNMPv2-SMI::enterprises.2604.2.1.1.2.2.2 = STRING: "9.5.5"
过头的部分就先无视了~
这是我写的regexp
\w+\-\w+\-\w+\s\d\d:\d\d:\d\d\s\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\(via UDP:\s
\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]:\w+\)\s\TRAP, SNMP v1, community public
\n\SNMPv2-SMI::enterprises.2604.\d.\d.\d.\d\s\Enterprise Specific Trap \(\w+\)
\s\Uptime:\s\w+\ days,\s\d\d:\d\d:\d\d\.\d\d\n\SNMPv2-SMI::enterprises.2604.
\d.\d.\d.\d.\d.\d\s.*
在网络上regexp tester测试都OK 但是在linux上测试就有问题
所以我想应该是换行字符还有第二行一开头的空白的关系
我快hold不住了~有热血乡民可以给些意见吗??
感恩一百分~
作者: uranusjr (←這人是超級笨蛋)   2011-09-07 21:25:00
RegExp 有专板, 也可以在那边问看看
楼主: tonini (没有灵魂的拥抱)   2011-09-07 22:01:00
喔喔~感谢提醒!!!!
作者: godspeedlee (妳,我可以)   2011-09-08 20:50:00
写这么长破了我的纪录XD看起来是SNMP Trap的东西...oid可以用简化的方式表达\w+(\.\w+)* 这样就好了修正一下: \w+(\.\w+)+
作者: blackkaku (black)   2011-09-08 23:47:00
^\d{4}(.+\n)+?.*"$ 这样如何?

Links booklink

Contact Us: admin [ a t ] ucptt.com