【发布时间】:2021-02-26 10:56:51
【问题描述】:
我有一个这样的字符串:
<p>1</p><p><img src="https://somesite/1.png?x=1&y=2"></p>
<p>2</p><p><img src="https://somesite/2.png?x=1&y=2"></p>
<p>3</p><p><img src="https://somesite/3.png?x=1&y=2"></p>
这是Kendo UI's editor的结果。
我希望所有图像 src 都附加一个类似于 &tick=2342342343 的刻度(因为我正在尝试克服像 this one from another stackoverflow 这样的缓存问题)
所以输出看起来像这样:
<p>1</p><p><img src="https://somesite/1.png?x=1&y=2&tick=2342342343"></p>
<p>2</p><p><img src="https://somesite/2.png?x=1&y=2&tick=2342342343"></p>
<p>3</p><p><img src="https://somesite/3.png?x=1&y=2&tick=2342342343"></p>
我认为 reg 表达式可能是一个好的开始:
var img = "img";
var imgRegExp = "<img src=\"[^\"]*\">";
Regex re = new Regex(imgRegExp);
if (editorText!=null && editorText.Contains(img))
{
//replace each editorText
}
【问题讨论】:
-
HTML 不规则,它是专用规范,使用专用 HTML 解析器以获得最佳效果
-
0011,是的,如果您的输入与您所显示的不完全一致,您只会破坏您的 HTML。
-
只有在您完全控制数据的生成方式(例如某些仅生成特定 HTML 片段的工具)的情况下,您才能对数据使用正则表达式。无论如何,您当前的正则表达式仅匹配具有单个
src属性的img元素,这并不能取代您所说的。为了达到你想要的结果,你做了什么尝试? -
谢谢,我会尝试使用 HTML 解析器并回复答案
-
该字符串来自 Kendo UI 的编辑器,并不是一个 HTML 文档。我还会使用 html 解析器吗?如果是这样,什么是好的?