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

如何用正则表达式提取字符串最后12个非空格字符(C#实现)

如何用正则表达式捕获字符串最后12个非空格字符(C#实现)

需求是提取字符串里最后12个非空格字符,示例如下:

  • 输入:COD83 8365 838 BF,预期输出:D838365838BF
  • 输入:COM2893 0409 7642 946,预期输出:304097642946

原本参考相关方案未适配成功,最终自行实现了可用的正则模式,通过C#的Regex.Replace方法完成需求,代码如下:

var pattern = "(.*?)((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?((\\S)\\s*)?$";
var replace = "$3$5$7$9$11$13$15$17$19$21$23$25";

逻辑说明

这个正则从字符串末尾反向匹配,重复12次((\S)\s*)?结构——每个结构负责匹配「一个非空格字符+任意数量可选空格」,再通过替换模式将每个结构里捕获到的非空格字符(对应$3、$5这类分组引用)按顺序拼接,最终得到连续的12个目标字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:36:12