gpt4 book ai didi

c# - 我有一个正则表达式问题删除 & 字符

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

我有这个字符串

../cms/Client Files/gallery images/home1.jpg&w=914&h=360&cache=1:28:02 PM

我想删除文件末尾的内容。在 c# 中,我正在尝试

html = Regex.Replace(html, @"&(w=([0-9]*))", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"&(h=([0-9]*))", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"&(cache=([0-9]*):([0-9]*):([0-9]*) [AP]M)", "", RegexOptions.IgnoreCase);

但它并没有删除任何东西。如果我尝试

html = Regex.Replace(html, @"w=([0-9]*)", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"h=([0-9]*)", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"cache=([0-9]*):([0-9]*):([0-9]*) [AP]M", "", RegexOptions.IgnoreCase);

然后我得到

../cms/Client Files/gallery images/home1.jpg&&&

我怎样才能同时删除 &'s?

最佳答案

You don't need to escape the & to match it ,正如其他人错误地建议的那样。

事实上,您的代码完全符合您的描述!我刚刚在 LINQPad 中运行了您的代码, 并验证了结果:

var html = "../cms/Client Files/gallery images/home1.jpg&w=914&h=360&cache=1:28:02 PM";

html = Regex.Replace(html, @"&(w=([0-9]*))", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"&(h=([0-9]*))", "", RegexOptions.IgnoreCase);
html = Regex.Replace(html, @"&(cache=([0-9]*):([0-9]*):([0-9]*) [AP]M)", "", RegexOptions.IgnoreCase);

html.Dump(); // Outputs: "../cms/Client Files/gallery images/home1.jpg"

因此,您应该检查其余代码并查看是否存在其他错误。这是调试器可能会向您展示的地方。

另一个想法 因为您的变量名为 html& 是否有可能实际上被编码为 &?这或许可以解释一些事情。

作为旁注:您的模式都不需要 (),没有它们它们会更简单。

关于c# - 我有一个正则表达式问题删除 & 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016932/

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