【发布时间】:2010-09-17 08:24:16
【问题描述】:
我有以下 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= 值是大写的。
可以做到吗?如果可以,最整洁的方法是什么?
【问题讨论】: