天天看點

Python将字元串按照固定長度分割

1. 問題描述

将已知的字元串string按照固定長度分割,假設這裡的固定長度為5。字元串分為2種:(1) 隻包含字母或數字;(2) 包含任意字元,如下表格所示。

類别 字元串 例子 正則化文法
1 隻包含 字母和數字 asd33fghjk44lqwert5yuiop r’\w{5}’
2 包含 任意字元 as_d33er==tyui+5+op r’.{5}’

其中,

w

針對隻包含字母和數字的string,

.

針對包含任意字元的string。

2. 解決方案

2.1 分割字元串(僅含有字母或數字)

import re
string1 = "asd33fghjk44lqwert5yuiop"
st1 = re.findall(r'\w{5}', string1)

print(st1)
#['asd33', 'fghjk', '44lqw', 'ert5y']
           

輸出如上,且最後不足5位的(無法比對到5個位點),直接舍棄。

2.2 分割字元串(包含任意字元)

string2 = "as_d33er==tyui+5+op"
st2 = re.findall(r'.{5}', string2)

print(st2)
# ['as_d3', '3er==', 'tyui+']
           

輸出如上,且最後不足5位的,直接舍棄。

2.3 正則比對相關庫介紹

這裡使用了re子產品的findall函數:

  • re :這個子產品提供了正規表達式比對操作,正規表達式是一個特殊的字元序列,它能幫助你友善的檢查一個字元串是否與某種模式比對。
  • re.findall:

    findall(pattern, string, flags=0)

    ,傳回string中所有與pattern相比對的全部字串,傳回形式為數組(更多用法參見該文檔)。

完結撒花🎉!