擅长:python、mysql、java
<p><strong>实用python用法:</strong></p>
<pre><code>log = ["4/19/2020 11:59:09 PM 2604 PACKET 0000014DE1921330 UDP Rcv 192.168.1.28 f975 Q [0001 D NOERROR] A (7)pagead2(17)googlesyndication(3)com(0)",
"4/19/2020 11:59:09 PM 0574 PACKET 0000014DE18C4720 UDP R cv 192.168.2.54 9c63 Q [0001 D NOERROR] A (2)pg(3)cdn(5)viber(3)com(0)"]
import re
urls = [re.sub(r'\(\d+\)','.',t.split()[-1]).strip('.') for t in log]
print (urls)
</code></pre>
<p>输出:</p>
<pre><code>['pagead2.googlesyndication.com', 'pg.cdn.viber.com']
</code></pre>
<hr/>
<p><strong>通过规则优化字典:</strong></p>
<p>如果要通过字典应用连续规则,请一直执行<code>lambda</code>:</p>
<pre><code>import re
rules = {"r0": lambda x: x.split()[-1],
"r1": lambda x: re.sub(r'\(\d+\)','.',x),
"r2": lambda x: x.strip(".")}
result = []
for value in log:
result.append(value)
for r in rules:
result[-1] = rules[r](result[-1])
print(result)
</code></pre>
<p>输出:</p>
<pre><code>['pagead2.googlesyndication.com', 'pg.cdn.viber.com']
</code></pre>