regex - 使用正则表达式 python 和“re”包拆分字符串
问题描述
我Python 3
在 Windows 10 上使用。考虑以下字符串:
import re
s = ["12345", "67891", "01112"]
我想将这些 zip 拆分为 3 个字符以获得 zip3,但此代码会引发错误。
re.split("\d{3}", s)
TypeError: cannot use a string pattern on a bytes-like object
我不太确定如何解决。帮助表示赞赏。谢谢。
解决方案
要获得每个的前三个,只需对它们进行字符串切片:
s = ["12345", "67891", "01112"]
first_tree = [p[0:3] for p in s]
print(first_tree)
输出:
['123', '678', '011'] # slicing
要将所有文本分成三部分,请将其连接起来,然后使用分块来获得 3 个字母的块:
s = ["12345", "67891", "01112"]
k = ''.join(s)
threesome = [k[i:i+3] for i in range(0,len(k),3)]
print(threesome)
输出:
['123', '456', '789', '101', '112'] # join + chunking
请参阅如何将列表拆分为大小均匀的块?和理解 Python 的切片符号
切片和分块也适用于字符串 - 关于字符串的官方文档在这里:关于字符串和切片
要获得其余部分:
s = ["12345", "67891", "01112"]
three_and_two = [[p[:3], p[3:]] for p in s]
print(three_and_two) # [['123', '45'], ['678', '91'], ['011', '12']]
推荐阅读
- openebs - OpenEBS cStor 是否提供快照功能?
- javascript - Laravel ajax post 方法给出 MethodNotAllowedHttpException
- ios - 使用日期格式后如何将更改为 2000 的年份改回
- python - 如何使用正则表达式从 python 中的字符串中提取大学/学校/学院名称?
- python - Python:仅从字符串中提取 00-00-00 格式的数字
- c# - 将不可序列化对象序列化或取消设置为可序列化对象的一部分 (C#)
- python - 在sqlite中删除表格的第一行
- angularjs - Angular 中的 On-Blur 替代方案
- r - 生成汇总表以显示数据框中每个组的分布
- excel - 将特定范围的数据从一个工作表复制到另一个工作表