我有以下C#,它只是将看起来像EQUIP:19d005的输入字符串部分替换为URL,如下所示:
input = Regex.Replace(input, @"(EQUIP:)(\S+)", @"$1$2", RegexOptions.IgnoreCase);
HTML最终看起来像这样.
EQUIP:19d005
唯一的麻烦是目标页面要求eqnum查询字符串全部为大写,因此它在eqnum = 19D005时返回正确的设备,但如果收到eqnum = 19d005则失败.
我想我可以修改和纠正EquipmentDisplay.asp对大写值的错误要求,但是,如果可能的话,我想通过在上面的Regex.Replace语句中大写$ 2来使C#代码符合现有的经典ASP页面.
理想情况下,我希望返回的HTML看起来像这样:
EQUIP:19d005
请注意,虽然原始字符串是EQUIP:19d005(小写),但只有eqnum =值是大写的.
它可以做到,如果是这样,最干净的方法是什么?
好的,2个解决方案,一个内联:
input = Regex.Replace(input, @"(EQUIP:)(\S+)", m => string.Format(@"{0}{1}", 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(@"{0}{1}", match.Groups[1].Value, match.Groups[2].Value, match.Groups[2].Value.ToUpper()); }