You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式查找某字符的所有出现并获取对应位置?

正则查找所有匹配字符位置的实现方法

你可以使用re.finditer()方法满足需求,该方法会返回所有匹配结果的迭代器,每个迭代元素的结构和re.search()的返回值完全一致,可直接调用start()/end()/span()获取对应匹配的位置信息。

完整实现代码如下:

import re
palabra = "hola mundo"
caracter = "o"

# 拿到所有匹配结果
all_matches = list(re.finditer(caracter, palabra))

# 遍历输出每个匹配的位置
for item in all_matches:
    print(f"匹配区间:{item.span()},起始索引:{item.start()},结束索引:{item.end()}")

# 统计出现次数,判断是否大于1
match_count = len(all_matches)
print(f"指定字符总出现次数:{match_count}")
if match_count > 1:
    print("该字符出现次数多于1次")

运行效果如下:

匹配区间:(1, 2),起始索引:1,结束索引:2
匹配区间:(9, 10),起始索引:9,结束索引:10
指定字符总出现次数:2
该字符出现次数多于1次

相关方法区别说明

  • re.search():仅返回第一个匹配的匹配对象,无匹配时返回None
  • re.findall():返回所有匹配的字符串组成的列表,无法获取位置信息
  • re.finditer():返回所有匹配的匹配对象迭代器,可获取每个匹配的全量信息

内容的提问来源于stack exchange,提问作者Victotem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:45:04