我需要检测 .NET 代码中标记之间的文本,如下所示:
ololo <z>text needed to be found</z> azaza
但字符串可以包含多个标记条目:
asd <z>text1</z> dgfh <z>text2</z> gfhj
简单的正则表达式(<z>.+</z>
)不能识别多个条目,并解析从第一个到最后一个符号的匹配。
我试图构建表达式来查找标签之间的任何符号,但不包含结束标签 (<z>.+[^(<z>)]</z>
),但由于表达式逻辑[ ]
它不起作用。
什么表达是正确的?
var text = "asd <z>text1</z> dgfh <z>text2</z> gfhj";
string pattern = "<z.*?>(.*?)</z>";
Regex r = new Regex(pattern);
foreach (Match match in r.Matches(text))
{
string textBetweenTags = match.Groups[1].ToString();
//your logic here
}