gpt4 book ai didi

python - 如何在 Python 中拆分字符串,直到从右到左出现特定字符之一?

转载 作者:行者123 更新时间:2023-12-05 03:23:24 25 4
gpt4 key购买 nike

在 Python 中将字符串从右到左分成两部分直到出现几个字符之一的最佳方法是什么?

目的是将一个字符串分成两部分,最后是版本号(以 A、B 或 C 开头),例如:

  • EP3293036A1 -> EP3293036 + A1
  • US10661612B2 -> US10661612 + B2
  • CN107962948A -> CN107962948 + A
  • ES15258411C1 -> ES15258411 + C1

我的代码适用于拆分单个字符的字符串:

first_part = number.rpartition('A')[0]
second_part = number.rpartition('A')[1] + number.rpartition('A')[2]

有没有办法使用 rpartition 获得多个参数,例如('A' 或 'B' 或 'C')?还是有更好的使用正则表达式的方法?

最佳答案

使用re.findall .使用显示的正则表达式,此函数提取括号中的部分:(.*?) - 任何重复 0 次或多次的字符,非贪婪; ([AB]\d*)$ - A 或 B,后跟 0 个或多个数字,然后是字符串的末尾。

import re
lst = ['EP3293036A1', 'EP3293036B']

for s in lst:
parts = re.findall(r'(.*?)([AB]\d*)$', s)
print(f's={s}; parts={parts}')

# s=EP3293036A1; parts=[('EP3293036', 'A1')]
# s=EP3293036B; parts=[('EP3293036', 'B')]

关于python - 如何在 Python 中拆分字符串,直到从右到左出现特定字符之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72533687/

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