gpt4 book ai didi

c# - 需要帮助为我的白名单制作这个正则表达式

转载 作者:行者123 更新时间:2023-11-30 12:18:44 24 4
gpt4 key购买 nike

我正在使用一个富 html 编辑器,我想为应该允许的内容创建一个白名单。

我听说您应该使用白名单而不是黑名单,因为这样做比尝试创建黑名单更容易。

我什至看到一些示例,人们可以在 css 样式部分中隐藏脚本标签。

所以这是编辑器生成的示例

<span _moz_dirty="" style="font-weight: bold;">
aaaaaaaaaaaa
<br _moz_dirty=""/>
ffffffffffff
<br _moz_dirty=""/>
<span _moz_dirty="" style="text-decoration: underline;">
fffffffff
<br _moz_dirty=""/>
</span>
<span _moz_dirty="" style="text-decoration: line-through;">
aaaaaaaaaa
<br _moz_dirty=""/>
<sub _moz_dirty="">
</sub>
<sup _moz_dirty="">ggg</sup>
<sub _moz_dirty="">
</sub>
</span>
</span>
<ol _moz_dirty="">
<li _moz_dirty="">1333</li>
<li _moz_dirty="">ff</li>
</ol>
<ul _moz_dirty="">
<li _moz_dirty="">ggg</li>
<li _moz_dirty="">ff</li>
</ul>
<div _moz_dirty="" style="margin-left: 40px;">
ffffff
<br _moz_dirty=""/>
</div>
fff
<br _moz_dirty=""/>
<br _moz_dirty=""/>
<a _moz_dirty="" href="http://">ffff</a>
<br _moz_dirty="" type="_moz"/>
<span _moz_dirty="" style="font-weight: bold;">
<span _moz_dirty="" style="text-decoration: underline;"/>
</span>

所以我想我的白名单会允许这些具有正确类名的标签

<span>
style - font-weight: bold, text-decoration: underline, margin-left, margin-right
<br />
<a>
<ol>
<ul>
<li>

所以我正在尝试制作一个正则表达式,我可以将其放入我的 C# 代码中以仅检查这些标签。

所以我试着从风格的东西开始

style="[^font\-style|weight]+\s*:\s*[bold|italic]+\s*;\s*"

但它不起作用。我尝试根据我给您的示例进行更改,但没有显示任何内容。

最佳答案

您正在使用方括号,它创建了一个字符类;您应该改用括号来表示替代方案,即

font-(style|weight)

+ 是多余的(您不需要一个或多个,对吧?)。
我认为你的正则表达式应该是这样的

Regex regex = new Regex(@"font-(style|weight)\s*:\s*(bold|italic)\s*;\s*");

另一件事:'^' 表示行/字符串的开头,因此您应该将其删除。

关于c# - 需要帮助为我的白名单制作这个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1442479/

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