python支持按指定字符串分割_Python字符串---固定长度分割字符串

固定长度分割字符串

两个一组分割

处理mac地址,添加中横线

import re

mac = '50E549E32ECB'

# 方法一

mac1 = ''

tmp = list(mac)

print(tmp) # ['5', '0', 'E', '5', '4', '9', 'E', '3', '2', 'E', 'C', 'B']

for i in range(len(tmp)):

if i != 0 and i % 2 == 0:

mac1 = mac1 + '-' + tmp[i]

else:

mac1 = mac1 + tmp[i]

print(mac1) # 50-E5-49-E3-2E-CB

# 方法二

tmp = re.findall(r'.{2}', mac)

mac2 = '-'.join(tmp)

print(mac2) # 50-E5-49-E3-2E-CB

三个一组分割

import re

import math

string = '123456789abcdefg'

# 方法一:递归实现

text_list = []

def split_text(text, length):

tmp = text[:int(length)]

# print(tmp)

# 将固定长度的字符串添加到列表中

text_list.append(tmp)

# 将原串替换

text = text.replace(tmp, '')

if len(text) < length + 1:

# 直接添加或者舍弃

text_list.append(text)

else:

split_text(text, length)

return text_list

print(split_text(string, 3)) # ['123', '456', '789', 'abc', 'def', 'g']

# 方法二

def split_text2(text, length):

text_arr = re.findall(r'.{%d}' % int(length), text)

print(text_arr) # ['123', '456', '789', 'abc', 'def']

split_text2(string, 3)

# 方法三

def split_text3(text, length):

text_list = []

group_num = len(text) / int(length)

print(group_num) # 5.333333333333333

group_num = math.ceil(group_num) # 向上取整

for i in range(group_num):

tmp = text[i * int(length):i * int(length) + int(length)]

# print(tmp)

text_list.append(tmp)

return text_list

print(split_text3(string, 3)) # ['123', '456', '789', 'abc', 'def', 'g']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值