如何删除特定字符串/模式后的其余字符串?

时间:2015-08-19 00:33:07

标签: c# .net

有谁知道如何在特定的字符串或模式后删除其余的字符串?

例如: 我将html代码保存为字符串,如下所示:

字符串测试;

test = '<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title></head><body><table> <tr><td>test</td></tr> </table><div id="13"> </body> test test test test </html>'

如何在C#.net?

中删除<div id="13">之后的其余文本

2 个答案:

答案 0 :(得分:2)

如果要排除结束标记,可以使用:

string test = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><table> <tr><td>test</td></tr> </table><div id=\"13\"> </body> test test test test </html>";
string result = test.Split(new string[] { "<div id=\"13\">"}, StringSplitOptions.None).FirstOrDefault();

如果您想要包含结尾标记,可以使用:

string test = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><table> <tr><td>test</td></tr> </table><div id=\"13\"> </body> test test test test </html>";
string endString = "<div id=\"13\">";
string result = test.Substring(0, test.IndexOf(endString) + endString.Length);

请注意,字符串文字必须用双引号字符括起来,而不是撇号,并且必须通过在\前面对其中的引号字符进行转义。

另请注意,在我的代码中,我没有进行任何类型的验证,我将其留给您。 :)

答案 1 :(得分:0)

有很多方法可以实现这个/使用哪个取决于你的确切要求(即你真的在搜索<div id="13">或者你想要任何带有数字id的div标签/你关心它是否有其他属性/你是否关心文本中的其他空格/你是否真的使用了字符串,或者你正在解析html;等等。

下面是一个如何使用正则表达式匹配确切字符串的示例。这种方法的一个优点是它为您提供了很大的灵活性,因此您可以轻松调整,因为您的需求得到了更好的定义。

    var regex = new Regex(".*?<div id=\"13\">");
    var test = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><table> <tr><td>test</td></tr> </table><div id=\"13\"> </body> test test test test </html>";
    var match = regex.Match(test);
    if (match.Success)
    {
        Console.WriteLine("Found!");
        Console.WriteLine(match.Value);
    }

完整代码:

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        var regex = new Regex(".*?<div id=\"13\">");
        var test = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head runat=\"server\"><title></title></head><body><table> <tr><td>test</td></tr> </table><div id=\"13\"> </body> test test test test </html>";
        var match = regex.Match(test);
        if (match.Success)
        {
            Console.WriteLine("Found!");
            Console.WriteLine(match.Value);
        }
        else
        {
            Console.WriteLine("Not Found!");
        }
        Console.ReadLine();         
    }
}