使用python标识字符串中的特定数字

2024-05-19 01:35:17 发布

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

我想使用Python3.5在字符串中的每个“:”(冒号)后面提取一个数字

我的字符串是:

x= "RTD - Shanghai Indices - STD DLY - Indices - 11054 - ID:1053 (INACTIVE) RTD - SIX Swiss incl. SWX Europe - STD L1 - Equity - 10969 - ID:1096 (INACTIVE)"

我用过:

 re.findall('\d+', x)

但这会返回所有数字,即:

['11054', '1053', '1', '10969', '1096']

但最终结果应该是:

[1053, 1096]

Tags: 字符串id数字stdrtdsixeuropeindices
3条回答

搜索:后面的数字并转换为所需输出的整数:

>>> [int(y) for y in re.findall(':(\d+)', x)]
[1053, 1096]

您正在匹配\d+,这是所有的数字。如果只想匹配前面带有冒号的数字,请将其添加到正则表达式中::(\d+)

>>> import re
>>> x= "RTD - Shanghai Indices - STD DLY - Indices - 11054 - ID:1053 (INACTIVE) RTD - SIX Swiss incl. SWX Europe - STD L1 - Equity - 10969 - ID:1096 (INACTIVE)"
>>> re.findall(r':(\d+)', x)
['1053', '1096']

关于:

re.findall(':(\d+)', x)

括号将与所需的组匹配,前面的冒号将与实际的文字:匹配。它将返回:后面的数字

>>> import re
>>> x= "RTD - Shanghai Indices - STD DLY - Indices - 11054 - ID:1053 (INACTIVE) RTD - SIX Swiss incl. SWX Europe - STD L1 - Equity - 10969 - ID:1096 (INACTIVE)"
>>> re.findall(':(\d+)', x)
['1053', '1096']

相关问题 更多 >

    热门问题