C# 如何在C中将脚本标记包装到cdata中?
如何包装:C# 如何在C中将脚本标记包装到cdata中?,c#,.net,regex,C#,.net,Regex,如何包装: <script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler..</script> 为此: //<![CDATA[<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler.. </script>
<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler..</script>
为此:
//<![CDATA[<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler.. </script>//]]>
如何做到这一点?你可以试试这个 查找[\S\S]*?|'[\S\S]*?'|?:?!/>[^>]?+?\s*>[\s\s]* 替换 但是,问题是浏览器将CDATA解析为[\S\S]*?]]> 这意味着你必须处理1美元。在这里。适用于以下情况]]> 顺序,然后做一些事情来缓解它 否则cdata将提前终止,留下剩余的垃圾 请注意,您不能只查找CDATA而不查找第一个数据集上的所有标记 来/服务为基础。 原因是CDATA和任何标记一样,可以隐藏在其他构造中 通常,解析所有标记的表达式如下 [\S\S]*?|'[\S\S]*?'|?:?!/>[^>]?+?\s*>[\s\s]*?:/?[\w:+\s*/?:[\w:+\s+?:[\s\s]*?“[\s\s]*?”[\s\s]*?“[^>]?+\s*/?\?[\s\s]*?\:!:?:DOCTYPE[\S\S]*?\124;?:\[CDATA\[\S\S]*?\]\]\124;?:-[\ S\S]*?-\124;?:ATTLIST[\S\S]*?:实体[\S\S]*?\124;?:元素[\S\S]*?> 当您得到一个脚本标记时,您可以从写回非脚本标记开始
做你的替补 分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:标记存在于何处?还有其他标签吗?还是以独立字符串的形式?