擅长:python、mysql、java
<p>如果为“python”修改regex101的风格,您将看到您不能使用<code>(?>eq)?</code></p>
<p>另一种方法是使用<code>$</code>,在行尾断言位置。使用<code>(\w+)$</code>将捕获字符串语句的最后一个。在</p>
<pre><code>import re
text = [
'2 match virtual-address 172.29.210.119 tcp eq www',
'4 match virtual-address 172.29.210.147 tcp any'
]
regexp = re.compile(r'match virtual-address (\d+\.\d+\.\d+\.\d+)\s(\w+).*?\s(\w+)$')
for i in text:
ip, protocol, url = regexp.search(i).groups()
print(ip, protocol, url, '', sep='\n')
</code></pre>