我试图忽略我的正则表达式中很少出现的一些文本。我的正则表达式是
var Runners = new Regex(@"(?<=y, |f, |m, )(.*?)(?= runners\))").Matches(set);
有问题的行是
Anthony Mildmay, Peter Cazalet Memorial Handicap Chase (Sponsored By Ing Barings) <span class=aside>3m 5f 110y</span></h2><ul class=list><li>(5yo+, 3m 5f 110y, 16 runners)
开头有一个额外的 'y, ',所以它会收集太多数据,因为在这个例子中我只想用我的正则表达式找到 '16'。
我认为这种情况不会经常发生,但由于此错误,它在 216424 的记录 134 上停止了。有没有一种方法可能只在 runners 一词后面寻找 10 个空格来寻找 'y, ' 或 'f, ' 或 'm, '?或者寻找 1 个数字后跟“y,”或“f,”或“m,”?
最佳答案
这可能对你有用:
(?<=[yfm],\s*)\d+(?=\s*runners\))
使用 .*
总是“危险的”(因为它可能匹配与预期不同的东西),即使它不是贪婪的。尝试使您的模式尽可能具体以获得正确匹配。
关于c# - 我如何使用 REGEX 忽略某些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41420108/