我在linq表达式中有一个代码,问题是如果我使用match.Value,它只是打印匹配字符,我想要的是打印匹配字符后加上30个字符。 你可以在评论标签中看到我的一些方法,因为我的条件在哪里,所以没有打印出来!regexis.match
foreach (var errorModel in from Match match in Regex.Matches(line, @"<(?!/)[^<]*?>\s+")
where !Regex.IsMatch(line, @"<.+?/>")
select new ErrorModel
{
LineNumber = lineno[0],
ErrorMessage = "Check space after opening tag.",
Text = match.Value
//Text = Regex.Match(line, @"\D{10,30}<(?!/)[^<]*?>\s+").Value
})
{
ErrorList.Add(errorModel);
}
答案 0 :(得分:0)
可以完成文本检索:
freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,keypoints)
您需要查看原始行,因为您不能(轻松)重叠匹配。
哪里条件可疑。你真的想跳过包含结束标记的所有行吗?
答案 1 :(得分:0)
那个正则表达式怎么样:
它会将您的标记与任何空格和最多30个其他字符进行匹配。不需要where !Regex.IsMatch(line, @"<.+?/>")
。