有谁知道如何在特定的字符串或模式后删除其余的字符串?
例如: 我将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">
之后的其余文本
答案 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();
}
}