我想使用正则表达式来捕获字符串的最后12个字符(空格除外).

2个示例:

  • COD83 8365 838 BF=>D838365838BF
  • COM2893 0409 7642 946=>304097642946

在C#代码中,我想使用这个:

var input = "COD83 8365 838     BF";
var pattern = "";
var replace = "";
var result = Regex.Replace(input, pattern, replace);

Console.Writeline(input); //print D838365838BF

我读了这篇文章,但没有达到适应我的目的:Regexp to match all the characters except spaces and 4 last characters

有谁可以帮我?

编辑 我终于用到了这个:

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";

推荐答案

如果没有正则表达式,这可能会更容易.

var input = "COD83 8365 838     BF";
var noSpaces = input.Replace(" ","");
var result = noSpaces.Substring(noSpaces.Length - 12);

但是,如果您想要纯正则表达式,这是可行的

var input = "COD83 8365 838     BF";
var pattern = ".*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*(\\w)\\s*$";
var replace = "$1$2$3$4$5$6$7$8$9$10$11$12";
var result = Regex.Replace(input, pattern, replace);

Csharp相关问答推荐

C# Json重新初始化动态类型

无法从具有一对多关系的C#类中使用Swagger创建记录

注册通用工厂的C# Dep注入

react 式扩展连接中的非交叉LeftDurationTimeout

C#自定义字典与JSON(de—)serialize

Polly v8—使用PredicateBuilder重试特定的状态代码

REST API端点中异步后台代码执行的类型

MAUI查询参数单一字符串项将不起作用

使用带有WithAppOnly()请求选项的pageIterator

C#阻塞调用或await calling inside calling方法

如果是,我怎么才能让这个加75,如果不是,我怎么才能减go 100?

C#自定义验证属性未触发IsValid方法

RabbitMQ群集的MassTransit配置问题

是否可以将Collectionview中的数组与ObservableCollection绑定?

如何在microsoft.clearscript.v8的jsondata中使用Linq

多个选项卡上的MudForm验证

从HTML元素获取 colored颜色

仅在ASP.NETCore应用程序中的附加单独端口上公开一组终结点

使用DI实例化带有动态参数的服务?

不寻常的C#语法