Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何恢复已替换的HTML括号?_C#_Html_Regex_Replace - Fatal编程技术网

C# 如何恢复已替换的HTML括号?

C# 如何恢复已替换的HTML括号?,c#,html,regex,replace,C#,Html,Regex,Replace,我正在使用一个数据库,它的内容中的尖括号已替换为字符^ e、 g 有谁能推荐一种c#解决方案,将^字符转换回相应的括号中,以便显示为html?我猜某种正则表达式会起作用 提前感谢您可以将每个第n个^字符替换为,其中n为偶数,((n++%2)==0)?“”); //结果==“一些文本” 请注意,只有当原始HTML代码中的每个都包含一个结束字符时,此操作才有效。您可以将每个第n个^字符替换为,其中n为偶数,((n++%2)==0)?“”); //结果==“一些文本” 请注意,只要原始HTML代码

我正在使用一个数据库,它的内容中的尖括号已替换为字符
^

e、 g

有谁能推荐一种c#解决方案,将
^
字符转换回相应的括号中,以便显示为html?我猜某种正则表达式会起作用


提前感谢

您可以将每个第n个
^
字符替换为
,其中n为偶数,
((n++%2)==0)?“”);
//结果==“一些文本”

请注意,只有当原始HTML代码中的每个
都包含一个结束
字符时,此操作才有效。您可以将每个第n个
^
字符替换为
,其中n为偶数,
((n++%2)==0)?“”);
//结果==“一些文本”

请注意,只要原始HTML代码中每个
都包含一个结束
字符,这种方法就有效。更复杂但可能更安全的解决方案是搜索特定的字符集,例如^p、^img、^div等,以及它们的对应字符^p^、^/div^、^/img^等。,并具体替换每一个

不过,这是否可行,取决于数据中存在哪些标记,以及您愿意付出多大的努力来安全地做到这一点。你知道是否有一组有限的标签被使用过吗?是HTML生成的,还是有人手动编辑了它们,必然会使模式搜索更加复杂


也许您可以先做一些分析,例如搜索并列出字符^出现的各种实例?我们谈论的是多少数据,它是静态的,还是会继续增长(包括^-问题)?

一个更复杂但可能更安全的解决方案是搜索特定的字符集,如^p、^img、^div等及其对应字符集^/p^、^/div^、^/img^,等等,并专门替换它们

不过,这是否可行,取决于数据中存在哪些标记,以及您愿意付出多大的努力来安全地做到这一点。你知道是否有一组有限的标签被使用过吗?是HTML生成的,还是有人手动编辑了它们,必然会使模式搜索更加复杂


也许您可以先做一些分析,例如搜索并列出字符^出现的各种实例?我们谈论的是多少数据,是静态的,还是会继续增长(包括^问题)?

非常棘手,以至于不可能完全自动完成—除非您可以对原始HTML做出一些非常方便的假设(这是所有可能的HTML的一小部分,它被认为符合某些可预测的模式)。我认为最终将不得不手工编辑

P.>已经说过了,并道歉,不包括任何实际的C代码,这里我要考虑如何接近它。

让我们循序渐进地解决这个问题,首先转换常见模式。目标是在每一步之后减少剩余的^字符数

所以首先,正则表达式替换了很多非常常见的文本模式

^p^ -> <p>
^div^ -> <div>
^/div^ -> <div>
^p^->
^div^->
^/div^->
等等

接下来,替换包含可选文本的模式,如

^link[anything-except-^]^ -> <link[original-text]>
^链接[除-^之外的任何内容]^->

等等。我的方法是只替换预期的模式,通过这样做,避免错误匹配。然后用其他模式迭代,直到没有^char剩余。这需要大量的数据检查和大量的模式。这是蛮力,不是聪明,但就是这样。

很棘手,以至于不可能完美地完成自动——除非你能对原始HTML做出一些非常方便的假设(它是所有可能的HTML的一个小子集,已知它符合某些可预测的模式)。我认为最终必须手工编辑

P.>已经说过了,并道歉,不包括任何实际的C代码,这里我要考虑如何接近它。

让我们循序渐进地解决这个问题,首先转换常见模式。目标是在每一步之后减少剩余的^字符数

所以首先,正则表达式替换了很多非常常见的文本模式

^p^ -> <p>
^div^ -> <div>
^/div^ -> <div>
^p^->
^div^->
^/div^->
等等

接下来,替换包含可选文本的模式,如

^link[anything-except-^]^ -> <link[original-text]>
^链接[除-^之外的任何内容]^->

等等。我的方法是只替换预期的模式,通过这样做,避免错误匹配。然后用其他模式迭代,直到没有字符。这需要大量的数据检查和大量的模式。这是蛮力,不是聪明的,但就是这样。

开发人员/架构师有了这个伟大的replacin想法带有
^
的g HTML标签应该面对由同行组成的陪审团的审判,并得到最高判决(不要靠近键盘)。这是因为他造成的损害是不可逆转的-他用一个字符替换了两个不同的字符->这被称为有损压缩:-)开发人员/架构师想出了用
^
替换HTML标记的好主意,应该面对由同行组成的陪审团的审判,并获得最高判决(不要接近键盘)。这是因为他造成的伤害是不可逆转的——他用一个字符替换了两个不同的字符->这被称为有损压缩:-)没错,但考虑到他一开始就遇到了这个问题,这听起来像是一个非常大的假设。@Ryan Emerle:因为OP没有处理w