gpt4 book ai didi

c# - C# 中的正则表达式大写替换

转载 作者:太空狗 更新时间:2023-10-29 22:10:19 25 4
gpt4 key购买 nike

我有以下 C#,它只是将输入字符串中看起来像 EQUIP:19d005 的部分替换为 URL,如下所示:

input = Regex.Replace(input, @"(EQUIP:)(\S+)", @"<a title=""View equipment item $2"" href=""/EquipmentDisplay.asp?eqnum=$2"">$1$2</a>", RegexOptions.IgnoreCase);

HTML 最终看起来像这样。

<a title="View equipment item 19d005" href="/EquipmentDisplay.asp?eqnum=19d005">EQUIP:19d005</a>

唯一的问题是目标页面期望 eqnum 查询字符串全部为大写,因此它在 eqnum=19D005 时返回正确的设备,但如果接收到 eqnum=19d005 则失败。

我想我可以修改和更正 EquipmentDisplay.asp 对大写值的错误要求,但是,如果可能的话,我想通过将上面 Regex.Replace 语句中的 $2 大写来使 C# 代码符合现有的经典 ASP 页面。

理想情况下,我希望返回的 HTML 看起来像这样:

<a title="View equipment item 19d005" href="/EquipmentDisplay.asp?eqnum=19D005">EQUIP:19d005</a>

请注意,虽然原始字符串是 EQUIP:19d005(小写),但只有 eqnum= 值是大写的。

可以做到吗?如果可以,最简洁的方法是什么?

最佳答案

好的,2 个解决方案,一个内联:

input = Regex.Replace(input, @"(EQUIP:)(\S+)", m => string.Format(@"<a title=""View equipment item {1}"" href=""/EquipmentDisplay.asp?eqnum={2}"">{0}{1}</a>", m.Groups[1].Value, m.Groups[2].Value, m.Groups[2].Value.ToUpper()), RegexOptions.IgnoreCase);

另一个使用单独的函数:

var input = Regex.Replace(input, @"(EQUIP:)(\S+)", Evaluator, RegexOptions.IgnoreCase);

private static string Evaluator(Match match)
{
return string.Format(@"<a title=""View equipment item {1}"" href=""/EquipmentDisplay.asp?eqnum={2}"">{0}{1}</a>", match.Groups[1].Value, match.Groups[2].Value, match.Groups[2].Value.ToUpper());
}

关于c# - C# 中的正则表达式大写替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205382/

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