正则表达式(regex)如何按字符串中出现的前X位数拆分字符串?

2024-10-04 11:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力寻找合适的正则表达式(Python)来满足我的需求:

我想根据6位数字的第一个位置分割一个字符串

例如—

stringA = 'abcdf123456789'

理想情况下会被切割成-

StringB='abcdf123456'
StringC='789'

到目前为止,这是我提出的解决方案:

x = re.split("(?=[0-9])", stringA)

然后在计算字符时循环计算结果

非常感谢您的帮助


Tags: 字符串re情况数字解决方案字符split计算结果
3条回答
import re
stringA = 'abcdf123456789'
result = re.split("(?<=[0-9]{6})",stringA,maxsplit=1)
print(result)
# ['abcdf123456', '789']

您可以使用maxsplit=1在6位数字上拆分,并捕获拆分的组,然后可以轻松构建字符串:

import re

stringA = 'abcdf123456789'
split = re.split(r'(\d{6})', stringA, maxsplit=1)
# split is now ['abcdf', '123456', '789']
stringB = ''.join(split[:2])
stringC = split[2]

print(stringB)
print(stringC)

# abcdf123456
# 789

使用lookback:

>>> stringA = 'abcdf123456789'
>>> re.split(r'(?<=\d{6})', stringA, maxsplit=1)
['abcdf123456', '789']

Demo and explanation of the regex

相关问题 更多 >