Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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
如何提取<;之间的字符串;strong>;使用C#的标记?_C#_Regex - Fatal编程技术网

如何提取<;之间的字符串;strong>;使用C#的标记?

如何提取<;之间的字符串;strong>;使用C#的标记?,c#,regex,C#,Regex,假设我有一个字符串,如下所示: "Unneeded text <strong>Needed Text</strong> More unneeded text" “不需要的文本需要的文本更多不需要的文本” 如何仅提取“所需文本”?我猜正则表达式可能是最简单的方法,但正则表达式在我看来仍然像是象形文字。看看or给出您的示例,简单的拆分就可以了,例如 var innerText = text.Split('>')[1].Split('<')[0]; var i

假设我有一个字符串,如下所示:

"Unneeded text <strong>Needed Text</strong> More unneeded text"
“不需要的文本需要的文本更多不需要的文本”

如何仅提取“所需文本”?我猜正则表达式可能是最简单的方法,但正则表达式在我看来仍然像是象形文字。

看看or

给出您的示例,简单的
拆分
就可以了,例如

var innerText = text.Split('>')[1].Split('<')[0];

var innerText=text.Split('>')[1].Split('您不需要正则表达式

您可以使用以下方法:

string s = "Unneeded text <strong>Needed Text</strong> More unneeded text";
Console.WriteLine(s.Substring(s.IndexOf("<strong>") + "<strong>".Length, s.IndexOf("</strong>") - s.IndexOf("<strong>") - "<strong>".Length));
这里a.

Regex Regex=new Regex(“(.*)”;
var v=regex.Match(“不需要的文本需要的文本更多不需要的文本”);
字符串s=v.Groups[1].ToString();
使用并避免让自己头疼。像这样的东西应该可以做到:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("html...");

var innerText = doc.DocumentNode.Descendants("strong").Select(x => x.InnerText).SingleOrDefault(); 

使用一个简单的正则表达式,如:

(?<=<strong>).+?(?=<)

(?(或者更好)会照顾你。通过简单的谷歌搜索“在html标签之间提取文本”,这些信息会立即弹出。您的答案在这里……您是否试图从XML文件中提取?不。它是存储在SQL db中的HTML字符串,用于帮助格式化文档。我正在提取字符串的一部分以用于dropdownlist。该方法不会被大量使用,服务器空间有点问题。我熟悉HTML Agility Pack,但该方法将仅在应用程序中的一个位置使用。我希望避免将大小增加太多。然后按照Soner的建议使用子字符串,除非我将硬编码的8值替换为“”。长度(显然计算一次)为了使代码更具可读性。@JonEdwards好吧,如果这个字符串中的HTML代码可以是任何有效的HTML代码,那么就没有办法解决它。除非您能确定您只处理有限的HTML子集,而这些HTML子集不包含任何会完全破坏基于正则表达式的解决方案的模式,否则您将不确定您的解决方案是否适用于所有输入。请注意,给定字符串
“不需要的文本需要的文本不太有用更有用
,它也将捕获
不太有用的
。我建议改为
(.*)
。为了澄清,后面的“?”将使其“懒惰”,这意味着它将在与下一个匹配时立即停止。我给@Anna.P检查,因为她在上面的评论中提供了我需要的内容:她还提供了一个关于正则表达式的可靠答案。谢谢,Anna.PSomebody需要它来满足最低场景。这适用于
  • ElementValue
  • HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml("html...");
    
    var innerText = doc.DocumentNode.Descendants("strong").Select(x => x.InnerText).SingleOrDefault(); 
    
    (?<=<strong>).+?(?=<)