这是 Lua 中的一个函数,如果您将整个文件内容传递给它,它将打印您需要的值:
function getmatches(text)
for line in string.gmatch(text, "[^\r\n]+") do
m,n = string.match(line,"^dhcp%-range[^,]*,([^,]+),([^,]+)")
if m ~= nil then
print(m,n)
end
end
end
See Lua demo https://ideone.com/sYN7ia
With string.gmatch(text, "[^\r\n]+")
,访问每个文件行(根据需要调整),然后主要部分是m,n = string.match(line,"^dhcp%-range[^,]*,([^,]+),([^,]+)")
实例化m
与第一个 IP 和n
在以以下开头的行中找到第二个 IPdhcp-range
.
Lua模式细节:
-
^
- 字符串的开头
-
dhcp%-range
- 文字字符串dhcp-range
(a -
是 Lua 中的量词,匹配 0 次或多次出现,但尽可能少,并且匹配文字-
,它必须被转义。正则表达式转义是由%
.)
-
[^,]*,
- 0+ 个字符以外的字符,
然后一个,
-
([^,]+)
- 第 1 组(m
): 除以下以外的一个或多个字符,
-
,
- 一个逗号
-
([^,]+)
- 第 1 组(n
): 除以下以外的一个或多个字符,
.