Python-我可以在第一个整数后用str.split分割字符串吗?

0 投票
2 回答
1997 浏览
提问于 2025-04-17 22:36

我有一些字符串,看起来像这样:

text-text-text-12345

但是“text”的数量不一样,所以我不想直接用“-”来分割字符串。

有没有办法可以在数字第一次出现的地方进行分割,这样我就能得到字符串:

text-text-text-?

我在考虑使用正则表达式,但我想知道是否可以用str.split来解决这个问题。

非常感谢。

2 个回答

2

只需这样做

for (i, c) in enumerate(s):
    if c.isdigit():
        break   
else:
    raise ValueError('input with no number part')

fields = s[:i].split('-')
4

使用正则表达式:

>>> import re
>>> re.split(r'(?<=\d)\D', 'start 123 after text', maxsplit=1)
['start 123', 'after text']

这个方法会查找数字(0-9)后面第一个不是数字的字符,然后在这个地方进行分割,最多只会分割一次。

撰写回答