0

有这样的一段ip:"192.168.1.1-5,192.168.1.10-15"
想让他输出成:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
有什么好办法么?易语言中我可以用文本处理的方式实现,python还不是很熟,求大神来个思路。

3个回答

0

已采纳
a = "192.168.1.1-5,192.168.1.10-15"

# 根据逗号分隔不同的ip, 结果是一个列表[192.168.1.1-5, 192.168.1.10-15]
for ip in a.split(','):
    # ip就是遍历刚才的列表取得值, 根据.从右到左分割一次ip字符串, 获取结果192.168.1和1-5, 分别存给两个变量
    shuffix, _ = ip.rsplit('.', 1)
    # 用-切分1-5, 得出一个范围区间
    start, end = map(int, _.split('-'))
    for num in range(start, end+1):
        # num为上述范围区间的数, 然后拼接一开始的字符串, 组成新ip
        print('{}.{}'.format(shuffix, num))
1
回复 低音旋律

备注了, 满意请采纳

Lin_R · 5月16日

展开评论
0
# coding: utf-8

import os

str = '192.168.1.1-5,192.168.1.10-15'

for x in str.split(','):
    _, y = os.path.splitext(x)
    start, end = y.replace('.', '').split('-')
    for i in range(int(start), int(end) + 1):
        print '{}.{}'.format(_, i)
0
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# author: 史艳文
import re
ips = "192.168.1.1-5,192.168.1.10-15"
reip = re.compile('(\d+\.\d+\.\d+\.)(\d+)-(\d+)')
for ip in reip.findall(ips):
    for x in [ip[0]+str(x) for x in  range(int(ip[1]),int(ip[2])+1)]:
        print x

撰写答案