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

如何用正则表达式提取特定格式字符串中的目标子串?

正则匹配需求及问题

我有如下格式的字符串:

fd.s_fdsfds.na233_OVERFLOW:fdsfdsfds
fds_f.dsfds.cs194_0.0-1000.0:fdsfds
fdsf.dsfds.abc333_0.0-1000.0:fdsfds

我需要从中匹配出na233、cs194和abc333。

我当前写的正则表达式是:

(?<=\.)(.*)(?=_.*:)

但这个表达式匹配到的结果是s_fdsfds.na233、dsfds.cs194和dsfds.abc333,不符合预期。

以下是实现该需求的C#等效代码:

string s = "fds_f.dsfds.cs194_0.0-1000.0:fdsfds";
int colPos = s.IndexOf(':');
int underscore = s.LastIndexOf('_', colPos);
int prevdot = s.LastIndexOf('.', underscore);
Console.WriteLine(s.Substring(prevdot+1, underscore - prevdot -1));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:19:59