Python检测字符串包含指定子串时如何提取子串前的数字内容
提取apples前对应数字的实现方案
你可以先定位到apples在字符串中的起始索引,截取索引前的前缀内容后提取数字即可,同时兼容带空格、不带空格的两种输入格式:
通用适配写法(推荐)
可适配前缀含任意非数字字符的场景,比如"共3 apples"、"3apples"都能正常提取:
fruit = "3 apples" # 替换成 "3apples" 也可正常运行 if fruit.find('apples') > -1: # 获取apples的起始位置 apple_start_idx = fruit.find('apples') # 截取apples前的所有内容 prefix_part = fruit[:apple_start_idx] # 过滤出所有数字字符后转为整数 fruit_count = int(''.join([char for char in prefix_part if char.isdigit()])) # 输出结果为3 print(fruit_count)
轻量写法
如果确认前缀只有数字和可选空格,没有其他字符,可以用更简洁的写法:
if fruit.find('apples') > -1: apple_start_idx = fruit.find('apples') fruit_count = int(fruit[:apple_start_idx].strip())
内容的提问来源于stack exchange,提问作者Guilherme Celli Fadel
相关产品推荐
相关产品推荐

