[問題] 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