我正试图在 python 中杀死一个监听端口。
os.system("sudo netstat -ap | grep 13000 > net.txt")
f = open("net.txt","r")
fr = f.read()
上述命令的输出是:
udp 0 0*:13000 *:* 5071/python
到目前为止我有:
regex = re.compile(\d*.(python))
fl = regex.findall(fr)
上面的正则表达式只打印 python。
所以问题是,我如何创建一个正则表达式来只获取 PID 值 5071
(这可以是任何其他数字)
编辑: 可能有多个值,因为可能有多个进程。
最佳答案
你可以使用积极的前瞻:
>>> s="udp 0 0*:13000 *:* 5071/python"
>>> re.search(r'\d+(?=/python)',s).group(0)
'5071'
或者甚至只是一个普通的正则表达式和一个组:
>>> re.search(r'(\d+)/python', s).group(1)
'5071'
如果你有多个字符串,把上面的命令放在一个循环中:
for s in string_list:
print re.search(r'(\d+)/python', s).group(1)
关于python - 杀死一个正在用正则表达式监听的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557201/