gpt4 book ai didi

c# - 在此 Linq 查询中使用正则表达式?

转载 作者:行者123 更新时间:2023-11-30 17:46:57 26 4
gpt4 key购买 nike

我正在使用此 Linq 查找列表中的最高整数,以便我可以递增它并将其添加到下一个字符串的末尾:

var CableNumber = CList.Select(v => int.Parse(v.CableNumber.Substring(n))).Max();

但是,因为字符串的长度不是固定的,所以我想在其中插入一个 Regex.Match,可能是这样的:

n = Regex.Match(CableNumber, @"\d{3}", RegexOptions.RightToLeft);

指定;输入字符串遵循的唯一格式是它总是在末尾有一个 3 位数字,可能后跟一个字母。一些例子:

CP1-P-CP2-001 (001)
MOT1PSP2023A (023)
TKSP3-C-FLT2-234-A (234)

我该如何实现?有没有更好的办法?

最佳答案

以下在 linq 查询中使用正则表达式模式:

string[] strings = { "CP1-P-CP2-001 (001)","MOT1PSP2023A (023)", "TKSP3-C-FLT2-234-A (234)",
"InvalidString" };

int? maxValue = strings.Max(x =>
{
var match = Regex.Match(x, @"\d{3}(?=\D*$)");
return match.Success ? (int?) int.Parse(match.Value) : null;
});

int? 这样我们就可以绕过任何从无效匹配返回的 string.Empty 并只解析有效匹配。如果没有匹配,将返回 null。

关于c# - 在此 Linq 查询中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25357685/

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