我试图忽略我的正则表达式中很少出现的一些文本。我的正则表达式是

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上停止了。是否有可能仅在单词运行器后面查找10个空格来查找“ y”,“ f”或“ m”?还是寻找1个数字,后跟“ y”,“ f”或“ m”?

最佳答案

这可能对您有用:

(?<=[yfm],\s*)\d+(?=\s*runners\))


使用.*始终是“危险的”(因为它可能与预期的有所不同),即使它不是贪婪的也是如此。尝试使您的模式尽可能具体,以获得正确的匹配。

关于c# - 我如何使用REGEX忽略某些内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41420108/

10-10 07:54