相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

使用正则表达式解析HTML:为什么不呢?

似乎stackoverflow上的每个问题,其中提问者使用正则表达式从HTML中获取一些信息将不可避免地有一个"答案",表示不使用正则表达式来解析HTML.

为什么不?我知道那里有引用 - 不引用"真正的"HTML解析器,比如Beautiful Soup,我相信它们是强大而有用的,但是如果你只是做一些简单,快速或肮脏的事情,那么为什么当一些正则表达式语句运行得很好时,麻烦​​使用如此复杂的东西?

此外,是否有一些基本的东西,我不了解正则表达式,这使得它们一般是解析的错误选择?

regex html-parsing

202
推荐指数
10
解决办法
6万
查看次数

htmlagilitypack - 删除脚本和样式?

我使用以下方法提取文本格式html:

    public string getAllText(string _html)
    {
        string _allText = "";
        try
        {
            HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
            document.LoadHtml(_html);


            var root = document.DocumentNode;
            var sb = new StringBuilder();
            foreach (var node in root.DescendantNodesAndSelf())
            {
                if (!node.HasChildNodes)
                {
                    string text = node.InnerText;
                    if (!string.IsNullOrEmpty(text))
                        sb.AppendLine(text.Trim());
                }
            }

            _allText = sb.ToString();

        }
        catch (Exception)
        {
        }

        _allText = System.Web.HttpUtility.HtmlDecode(_allText);

        return _allText;
    }
Run Code Online (Sandbox Code Playgroud)

问题是我也得到了脚本和样式标签.

我怎么能排除他们?

c# html-agility-pack

16
推荐指数
2
解决办法
2万
查看次数

如何在C#中删除html标签

可能重复:
如何使用C#清理HTML标记

在C#中删除HTML标记的最佳方法是什么?

.net html c#

15
推荐指数
3
解决办法
3万
查看次数

使用WebAPI时停止XSS

我有一个接受的控制器

public class MyModel
{
   [MaxLength(400)]
   public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个WebApi Post Action

public HttpResponseMessage Post(MyModel viewModel)
{
            if (!ModelState.IsValid)
                return new HttpResponseMessage(HttpStatusCode.BadRequest);                 
            ...
}
Run Code Online (Sandbox Code Playgroud)

并采取行动.

由于内容是通过javascript写出的,而不是直接在视图中写出来的,确切的内容都被写出来了,也没有关于危险内容的asp.net警告.

我想要防范XSS.目前我在做

HttpUtility.HtmlEncode(Regex.Replace(p.Message, @"<[^>]*>", String.Empty))
Run Code Online (Sandbox Code Playgroud)

在Get动作中.(从使用C#正则表达式删除HTML标记中获取一些代码)

我应该使用Asp.Net内置的保护措施吗?我可以用我的模型装饰任何属性吗?

我注意到了http://stephenwalther.com/archive/2012/06/25/announcing-the-june-2012-release-of-the-ajax-control-toolkit.aspx,但点击了http:// wpl. codeplex.com/似乎非常糟糕.

c# asp.net asp.net-mvc asp.net-4.0

8
推荐指数
3
解决办法
2万
查看次数

删除Razor MVC 3中的HTML格式

我正在使用MVC 3和Razor View引擎.

我想做什么

我正在使用MVC 3制作博客,我想删除所有HTML格式标签<p> <b> <i>等.

我正在使用以下代码.(确实有效)

 @{
 post.PostContent = post.PostContent.Replace("<p>", " ");   
 post.PostContent = post.PostContent.Replace("</p>", " ");
 post.PostContent = post.PostContent.Replace("<b>", " ");
 post.PostContent = post.PostContent.Replace("</b>", " ");
 post.PostContent = post.PostContent.Replace("<i>", " ");
 post.PostContent = post.PostContent.Replace("</i>", " ");
 }
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一个更好的方法来做到这一点.任何人都可以指导我这个.

razor asp.net-mvc-3

6
推荐指数
1
解决办法
2万
查看次数

如何从字符串中删除Html并设置字符限制?

我从一个项目列表中获取一个字符串,该字符串当前显示为"item.ItemDescription"(下面的第9行)

我想从这个字符串中删除所有 html.在删除html后设置字符限制为250.有一个简单的方法吗?我看到有帖子说要安装HTML Agility Pack,但我正在寻找更简单的东西.

编辑:
它并不总是包含html,如果客户想要在描述中的项目名称中添加粗体或斜体标签,它会显示为<"strong">项目名称<"/ strong">,例如,我想要无论输入什么,都要删除所有html.

<tbody>
    @foreach (var itemin Model.itemList)
    {
        <tr id="@("__filterItem_" + item.EntityId + "_" + item.EntityTypeId)">
            <td>
                @Html.ActionLink(item.ItemName, "Details", "Item", new { id = item.EntityId }, null)
            </td>
            <td>
                item.ItemDescription
            </td>
            <td>
                @if (Model.IsOwner)
                {
                    <a class="btnDelete" title="Delete" itemid="@(item.EntityId)" entitytype="@item.EntityTypeId" filterid="@Model.Id">Delete</a>
                }
            </td>

        </tr>
    }
</tbody>
Run Code Online (Sandbox Code Playgroud)

html c# string asp.net-mvc

5
推荐指数
1
解决办法
191
查看次数

需要使用正则表达式从字符串中删除<a href="xx"> Name </a>标记

需要正则表达式从以下url中删除a标记<a href="http://example.com">Name</a>以仅输出字符串"Name".我正在使用C#.net.

任何帮助表示赞赏

c# regex asp.net

4
推荐指数
2
解决办法
2万
查看次数

停止网站上的HTML/Javascript和SQL注入

我拥有一个你有状态框的在线游戏.您可以根据自己的感受更新它.我遇到的问题是用户将java脚本标记放入消息并进入状态.所以当另一个用户来到他们的页面时,会弹出一个弹出框,说哈哈或他们想要的任何东西.

然后我通过使用停止了

$status = mysql_real_escape_string($_POST['status']);
$foo = preg_replace('/[^a-z]/i', null, $status );
Run Code Online (Sandbox Code Playgroud)

这已经停止了任何JavaScript的运行,但现在当有人向某人发送消息时,它会占用空格,因此消息"你好吗"它将显示"howareyou".当然这是安全的,但用户无法读取消息.是否还有其他方法可以阻止脚本标签插入到可用但仍允许空格的情况下?

我也真的害怕有人用XSS攻击我.因为以前,我被告知用户可以在消息中输入内容然后当其他用户打开它时,它会向他们发送密码.....

html php mysql

2
推荐指数
1
解决办法
4401
查看次数

删除HTML中的样式标记

我需要完全删除给定HTML代码的所有样式标记.我发现以下正则表达式匹配XML中的整个样式标记.它适用于在线正则表达式测试人员中给定的Html代码.

*style\s*=\s*('|")[^\2]*?\2([^>]*)*
Run Code Online (Sandbox Code Playgroud)

但是,通过C#代码,它不适用于给定的HTML.

以下是C#代码:

Regex regex = new Regex("style\\s*=\\s*('|\")[^\\2]*?\\2([^>]*)", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)

html c# regex

2
推荐指数
2
解决办法
9715
查看次数

从字符串中删除所有HTML格式

我想比较2个字符串,但我只是意识到已经有一些html格式.

在执行string1 == string2时,如何让这两个字符串匹配.(注意:我不知道HTML格式是什么会提前)

string1 = "This is a test";
string1 = "<font color=\"black\" size=\"1\">This is a test</font>";
Run Code Online (Sandbox Code Playgroud)

c# string

1
推荐指数
1
解决办法
982
查看次数

.Net从字符串中删除HTML的功能?

我正在寻找一个很好的功能来从HTML字符串中删除HTML.想法?

.net html c# regex parsing

1
推荐指数
1
解决办法
1051
查看次数

正则表达式 - 删除标签

可能重复:
使用C#正则表达式删除HTML标记

我必须删除标记并将所有其他信息保存在XML文件中.在使用正则表达式时,我有点不知所措.我只能逐行读取文件然后尝试"找到"所有标签并用""替换它们 - 空字符串.但是,它没有按预期工作:

line = Regex.Replace(line, "<.*>", "");
Run Code Online (Sandbox Code Playgroud)

我可以请一个解释为什么这不能按预期工作(我认为它应该只是找到<>内部符号的所有可能组合.另外,你能不能推荐正则表达式的一个很好的介绍.我经常看了很多-expressions.info但我发现它不完整和令人困惑.

c# regex

-1
推荐指数
1
解决办法
1963
查看次数