小编Smi*_*tty的帖子

使用 Python 和 Regex 解析 dhcpd.leases

我们正在努力解决一些 DHCP 问题,我正在使用 Python 和正则表达式来解析 dhcpd.leases 文件。我想编写一个正则表达式来捕获每个租约(请参阅底部的文件示例)块,然后捕获 IP 地址和 MAC。我的正则表达式知识很初级,但我认为我走在正确的轨道上。到目前为止我所拥有的并没有捕捉到一切:

到目前为止的代码:

import sys, re

fp = '/Users/smitty/Dropbox/Company/Network/DHCP-Info/dhcpd.leases'
f = open(fp)
ftext = f.read()

p = re.compile(ur'(lease\s([\d]*.*).*\n.*\n.*\n.*\n.*\n.*ethernet\s(.*);*.\n.*\n.*})')

raw_record = []

parsed_record = {}

for match in re.findall(p, ftext):
    raw_record.append(match)

for record in raw_record:
    m = re.search(p, record)
    parsed_record[m.group(2)] = m.group(3)

plaintext_record = []

for ip, mac in parsed_record.iteritems():
    plaintext_record.append("IP: {0}   MAC: {1}".format(ip, mac))
Run Code Online (Sandbox Code Playgroud)

dhcpd.leases 文件的示例块:

lease 192.168.124.118 {
  starts 1 2014/12/01 12:42:49;
  ends 1 2014/12/01 20:42:49;
  tstp 1 2014/12/01 20:42:49;
  binding …
Run Code Online (Sandbox Code Playgroud)

python regex

1
推荐指数
1
解决办法
3022
查看次数

基于多个匹配键合并对象 - Javascript

我正在努力寻找看起来应该是微不足道的事情.我有一个对象数组:

const vehicles = [
{
    "sku": "1234",
    "year": "2004",
    "make": "Chevrolet",
    "model": "Avalanche",
},
{
    "sku": "1234",
    "year": "2006",
    "make": "Chevrolet",
    "model": "Avalanche",
},
{
    "sku": "1234",
    "year": "2009",
    "make": "Chevrolet",
    "model": "Silverado 1500",
},
{
    "sku": "1234",
    "year": "2006",
    "make": "Chevrolet",
    "model": "Silverado 1500",
}]
Run Code Online (Sandbox Code Playgroud)

我想匹配sku,make以及model和扁平的对象有一个最终状态:

const mutatedVehicles = [
  {
    "sku": "1234",
    "years": ["2004", "2006"],
    "make": "Chevrolet",
    "model": "Avalanche",
  },
  {
    "sku": "1234",
    "years": ["2009", "2006"],
    "make": "Chevrolet",
    "model": "Silverado 1500" …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

1
推荐指数
1
解决办法
55
查看次数

标签 统计

arrays ×1

javascript ×1

object ×1

python ×1

regex ×1