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

求兼容.NET与JS的正则表达式:移除正向前瞻后顾匹配

兼容.NET与JavaScript的正则提取方案

没问题!要搞定这个跨环境的正则需求,我们可以把原来依赖前后瞻的写法换成捕获组——这是两种环境都原生支持的方案,完美避开兼容性坑。

最终可用的正则表达式

\-(\w+)\-

使用示例

不管是在JavaScript还是.NET里,只需要匹配这个正则后,取第一个捕获组的内容即可:

  • JavaScript 实现:
    const targetStr = "DSK-NY-110";
    const matchResult = targetStr.match(/\-(\w+)\-/);
    // 拿到提取的内容,没有匹配则返回null
    const extractedContent = matchResult ? matchResult[1] : null; // 结果为 "NY"
    
  • .NET (C#) 实现:
    string targetStr = "DSK-NY-110";
    Match matchResult = Regex.Match(targetStr, @"\-(\w+)\-");
    string extractedContent = matchResult.Success ? matchResult.Groups[1].Value : null; // 结果为 "NY"
    

方案原理

原来的(?<=\-)\w+(?=\-)用前后瞻定位连字符但不捕获它们,现在我们直接把连字符写入正则,把需要提取的\w+放进捕获组中。这样既实现了“提取两个连字符之间内容”的需求,又完全摆脱了前后瞻的兼容性限制——不管是旧版JS(不支持后顾)还是.NET环境,都能稳定工作。

如果字符串中存在多组类似模式(比如"ABC-XYZ-123-DEF-456"),这个正则也会默认匹配第一组的中间内容,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:17:57