gpt4 book ai didi

C# 正则表达式排序字母和数字字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:25 26 4
gpt4 key购买 nike

我有一个需要排序的列表说:

R1-1
R1-11
R2-2
R1-2

这需要订购:

R1-1
R1-2
R1-11
R2-2

目前我正在使用 C# Regex.Replace 方法并在字符串末尾出现单个数字之前添加一个 0,例如:

Regex.Replace(inString,@"([1-9]$)", @"0$2")

我确信有更好的方法可以做到这一点,但我只是想不出来。有没有人有使用正则表达式对字母和数字字符串进行排序的好方法?


我使用了下面 Greg 的方法来完成这个,只是想我应该添加我正在使用的代码以确保完整性:

public static List<Rack> GetRacks(Guid aisleGUID)
{
log.Debug("Getting Racks with aisleId " + aisleGUID);
List<Rack> result = dataContext.Racks.Where(
r => r.aisleGUID == aisleGUID).ToList();
return result.OrderBy(r => r.rackName, new NaturalStringComparer()).ToList();
}

最佳答案

我认为您追求的是自然排序顺序,就像 Windows 资源管理器一样?如果是这样,那么我不久前写了一篇博客文章显示 how you can achieve this in a few lines of C# .

注意:我刚刚检查并使用链接条目中的 NaturalStringComparer 确实返回了您使用示例字符串查找的顺序。

关于C# 正则表达式排序字母和数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com