gpt4 book ai didi

python - 在字符之间查找多个字符串

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:44 25 4
gpt4 key购买 nike

我有一个很长的字符串,其中包含这样的数据:

category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;

我想从中创建如下所示的列表:

new_list = [33,54,60]

基本上我只需要 category:; 之间的值在字符串中,同时保持原始顺序。

我可以创建一些看起来有效的东西 我假设当它不能正常工作时会有异常(exception)。我是 Python 的新手,并不真正了解可能性。

这是实际版本:

s = "category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;"
c = s.count("category")
z = 0
number_list = []
for x in range(z,c):
val = s.split('category:')[x+1]
number = val.split(' ;')[0]
print (number)
number_list.append(number.strip())

print ("All Values:", number_list)

最佳答案

简单构造一个正则表达式:

<b>import re</b>

rgx = <b>re.compile(r'category:\s*(\d+)\s*;')</b>
number_list = <b>rgx.findall(</b>'category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;'<b>)</b>

这给出:

>>> rgx.findall('category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;')
['33', '54', '60']

如果你希望结果是int,你可以使用map:

import re

rgx = re.compile(r'category:\s*(\d+)\s*;')
number_list = <b>list(map(int,</b>rgx.findall('category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;')<b>))</b>

这会产生:

>>> number_list
[33, 54, 60]

关于python - 在字符之间查找多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320293/

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