替换剪贴板中包含HTML格式的字符串的文本



我想做的是替换剪贴板内的文本的一部分,但问题是它是html格式的文本,我无法使用以下给定代码来修改其内容在C#中。有什么解决方案?

复制我的操作的步骤:

1-从剑桥高级学习者词典4将条目复制到剪贴板或任何其他HTML格式的文本为剪贴板
2-在Windows表单应用程序中使用这些C#代码在保持其HTML格式时修改和替换文本:

private void button1_Click(object sender, EventArgs e)
        {
            string myStr = Clipboard.GetText(TextDataFormat.Html);
            myStr.Replace("Cambridge Advanced Learner's Dictionary - 4th Edition", "******************************");
            Clipboard.SetText(myStr,TextDataFormat.Html);
        }

,但看来它根本不起作用!

注意:我想保持html格式,我不想从其HTML格式中剥离字符串。


我使用的是正则是我使用的时机:

myStr = Regex.Replace(myStr, "Cambridge Advanced Learner's Dictionary - 4th Edition", "");

但是当我想使用时:

myStr = Regex.Replace(myStr, "Cambridge Advanced Learner's Dictionary - 4th Edition<br /><br />", "");

它不起作用!删除这些HTML标签的任何解决方案:<br /><br />

使用Regex在某种程度上解决了问题:

private void button1_Click(object sender, EventArgs e)
        {
            string myStr = Clipboard.GetText(TextDataFormat.Html);
            myStr = Regex.Replace(myStr, "Cambridge Advanced Learner's Dictionary - 4th Edition", "");
            Clipboard.SetText(myStr,TextDataFormat.Html);
        }

,但仍然无法从剪贴板中删除诸如<br /><br />之类的HTML标签。

由于HTML输入可以是任意的,因此我建议以下步骤:

  1. 假设您有一种检测剪贴板内容的确在HTML中确实使用您选择的C#库(例如,此(整理。这将允许该应用程序与"消毒"的内容一起工作,即,下面的<br><br />之类的HTML断裂将为标准<br/> tidied ,然后您可以省略或替换。

  2. 而不是像递给HTML休息的那样使用"一次性"正则替换,而是尝试通过预期将来的添加到犯罪元素的列表中,以使您的代码更加灵活,您需要替换。,即使用组(例如,(。然后,您将能够为您的表单应用程序的用户提供一种配置要省略的元素的方法。

您必须以特殊的HTML剪贴板格式格式化文本(链接到描述(。

看起来像这样(与链接中给出的exmaple不同的工作示例,该链接中的启动和末端数字错误(:

Version:1.0
StartHTML:00085
EndHTML:00287
StartFragment:00105
EndFragment:00269
<!--StartFragment--><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8" /><TITLE></TITLE></HEAD><BODY>YOUR <B>HTML FORMATTED</B> TEXT GOES HERE!</BODY></HTML><!--EndFragment-->

还确保填写顶部部分中的正确启动和末端数字。更具体地说,您必须调整EndHTMLEndFragmentEndSelection,以反映文本长度的变化。

独自替换不起作用。

最新更新