gpt4 book ai didi

python - 使用正则表达式(python)将一个数字分成 2 或 3 个 block

转载 作者:行者123 更新时间:2023-12-04 01:09:37 26 4
gpt4 key购买 nike

假设我有一个电话号码 +9812345678+99123456789。我想把它分成 ["+98","12","34","56,"78"]["+99","12","34 ","56","789"] 即:“从 +99 或 +98 开始,然后分成至少两个组,最多 3 个组”

我试过类似的东西:

import re
a = "+9812345678"
re.compile("(\+9[98])(\d{2,3})+")

给出

['', '+98', '78', '']

有点不对

最佳答案

不要使用re.split,使用re.findall:

re.findall(r'^\+9[98]|\d{2}(?:\d$)?', text)

参见 regex demo详情

  • ^\+9[98] - 字符串开头,+9 然后是 98
  • | - 或者
  • \d{2} - 两位数
  • (?:\d$)? - 字符串末尾的可选数字序列。

查看 Python demo :

import re
texts = ['+9812345678','+99123456789']
for s in texts:
print(re.findall(r'^\+9[98]|\d{2}(?:\d$)?', s))
# => ['+98', '12', '34', '56', '78']
# ['+99', '12', '34', '56', '789']

关于python - 使用正则表达式(python)将一个数字分成 2 或 3 个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65293657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com