You need to enable JavaScript to run this app. 如何使用正则表达式提取字符串第三个“-”后的第一个字符
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式提取字符串第三个“-”后的第一个字符

解决方案

你需要的正则表达式为:

^(?:[^-]*-){3}(.)

正则说明

  • ^ 锚定匹配起始位置,确保从字符串开头开始计数破折号
  • (?:[^-]*-) 为非捕获组,匹配一段不含破折号的字符+末尾1个破折号的结构
  • {3} 限定上述结构重复匹配3次,刚好跳过前3个破折号
  • (.) 捕获接下来的第一个字符,即为你需要的目标内容,结果存储在第1个捕获组中

使用示例(Python)

import re

test_strs = [
    "mytext-othertext-01-Onemore",
    "mytext1-othertext1-02-Twomore",
    "mytext2-othertext2-03-Fourmore"
]
reg = re.compile(r'^(?:[^-]*-){3}(.)')
for item in test_strs:
    match = reg.search(item)
    if match:
        print(match.group(1))

运行输出:

O
T
F

原有正则问题说明

你之前编写的\-(.*)仅匹配字符串中第一个出现的破折号,且会捕获该破折号之后的所有内容,没有限定跳过前3个破折号的逻辑,因此不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 08:45:02