Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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# 删除C.net中的文本_C# - Fatal编程技术网

C# 删除C.net中的文本

C# 删除C.net中的文本,c#,C#,我有一根绳子 string str; str = "This is my new string. "<script>" Hi this is XYZ "</script>""; 现在我想使用C.net代码删除文本,从到包括标记 谢谢,您应该检查一下 有了它,你可以找到它,然后删除 如果您想从特定长度中删除文本,这应该可以获取脚本标记[^之间的所有内容,例如 "my name is testing" 在这里,您要删除的是 稍后只需使用indexof函数,使用subst

我有一根绳子

string str;

str = "This is my new string. "<script>" Hi this is XYZ "</script>"";
现在我想使用C.net代码删除文本,从到包括标记

谢谢,

您应该检查一下

有了它,你可以找到它,然后删除


如果您想从特定长度中删除文本,这应该可以获取脚本标记[^之间的所有内容,例如

"my name is testing"
在这里,您要删除的是 稍后只需使用indexof函数,使用substring方法将字符串替换为null或其他内容


在c语言中,在输入数据之前,您可以像这样过滤字符串或用户正则表达式,这就是我用来删除字符串中html标记的方法

public static string ClearHtmlTags(string html)
        {
            if (string.IsNullOrWhiteSpace(html)) 
                return html;

            html = html.Trim();
            string[] hs = html.Split("<>".ToArray());
            bool skip = false;

            StringBuilder sb = new StringBuilder();
            foreach (string s in hs)
            {
                if (!skip)
                    sb.Append(s);

                skip = !skip;
            }
            return sb.ToString();
        }
通过简单的修改,您将获得您的方法

public static string ClearHtmlTags(string html)
        {
            if (string.IsNullOrWhiteSpace(html)) 
                return html;

            html = html.Trim();
            string[] hs = html.Split("<>".ToArray());
            bool skip = false;
            bool skipTag = false;

            StringBuilder sb = new StringBuilder();
            foreach (string s in hs)
            {
                if (!skip)
                {
                    if (!skipTag)
                        sb.Append(s);
                }
                else
                {
                    skipTag = s == "script";
                }

                skip = !skip;
            }
            return sb.ToString();
        }

您可以使用以下内容:

Regex.Replace(inputString, "<script>([a-z]|[A-Z])*</script>", "");

现在,这将只允许脚本标记中的字母数字文本,特别是脚本标记或任何通用HTML标记。是否也要支持嵌套标记?关于自动关闭标记如何?是否要从str变量中删除文本?是否尝试过str=string.Empty?要删除哪一位文本?不清楚?您有什么建议已经试过了吗?你能重新表述一下这个问题吗,没有意义。手术后str会是什么样子?检查下面的链接在正常情况下我会同意,但在问题中,他给出的答案似乎很简单。链接应该是什么?它解决了什么问题http://www.c-sharpcorner.com/UploadFile/prasad_1/RegExpPSD12062005021717AM/RegEx似乎不起作用的pPSD.aspx。它应该为中的正则表达式提供一个教程c@ChrisF也许会有一段时间,谁知道呢,这不是一门精确的科学,应该是toughI没有投反对票,但它会错过元素中的空格和几乎所有内容。这不是评论,而是答案。也许这就是问题所在?你可以删除单击“删除”链接可以删除。