RegEx查找项目之前而不是之后
本文关键字:之后 查找 项目 RegEx | 更新日期: 2023-09-27 18:11:42
我试图通过Regex(不是xml)获得这个元素的值。我需要把Description从元素中去掉
<ValueExpressionLeft xmlns="http://Microsoft.EnterpriseManagement.Core.Criteria/">
<Property>$Context/Property[Type='WorkItem!System.WorkItem']/Description$</Property>
</ValueExpressionLeft>
只返回type=
之后的内容 string typeString = Regex.Match(valueExpressionLeft.Value.ToString(), "(?<=Type='')[^'']+").Value;
我需要得到]/
后面的单词描述
我尝试了kessy下面的子条目,但没有效果:
value left only containts this
$Context/Property[Type='WorkItem!System.WorkItem']/Description$
string left =valueExpressionLeft.Value.ToString();
string fieldname =Regex.Match(left,@"'[Type=''.*'']/([^<]+)[</]").Value;
我想你只是在寻找Description$
这个词?
如果是这样的话,下面的正则表达式应该可以让你得到数据:
'[Type=''.*''']/([^<]+)[</]
Group $1: Description$
EDIT:回答你的评论,是的,它在。net中工作。这里是完整的例子,但是你真的应该阅读一下Regex文档:
string parseText = "<ValueExpressionLeft xmlns='http://Microsoft.EnterpriseManagement.Core.Criteria/'><Property>$Context/Property[Type='WorkItem!System.WorkItem']/Description$</Property></ValueExpressionLeft>";
Match match = Regex.Match(parseText, @"'[Type=''.*''']/([^<]+)[</]");
string field = match.Groups[1].Value;
如果您想在末尾去掉$
,您可以使用以下正则表达式:
'[Type=''.*''']/([^<]+)['$]