2024-10-04 11:32:34 发布
网友
我一直在努力寻找合适的正则表达式(Python)来满足我的需求:
我想根据6位数字的第一个位置分割一个字符串
例如—
stringA = 'abcdf123456789'
理想情况下会被切割成-
StringB='abcdf123456' StringC='789'
到目前为止,这是我提出的解决方案:
x = re.split("(?=[0-9])", stringA)
然后在计算字符时循环计算结果
非常感谢您的帮助
import re stringA = 'abcdf123456789' result = re.split("(?<=[0-9]{6})",stringA,maxsplit=1) print(result) # ['abcdf123456', '789']
您可以使用maxsplit=1在6位数字上拆分,并捕获拆分的组,然后可以轻松构建字符串:
maxsplit=1
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
您可以使用
maxsplit=1
在6位数字上拆分,并捕获拆分的组,然后可以轻松构建字符串:使用lookback:
Demo and explanation of the regex
相关问题 更多 >
编程相关推荐