c# - 我如何使用 REGEX 忽略某些内容

标签 c# regex

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

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/

相关文章:

javascript - 在 WInRT 应用程序中下载 WebView 内容

正则表达式匹配不等于特定值的非空字符串

PHP 正则表达式无法正常工作?

python 正则表达式。带有 unicode 字符

sql - 删除表某列中后续的重复字符串

c# - 构造函数 + 依赖注入(inject)

c# - 在 mvc 中使用枚举如何获取值?

c# - 有没有一种简单的方法可以在 C# 中显示位图字体(如 .fon)

regex - 用于在 CSV 文件中查找未转义双引号的正则表达式

c# - 反射,将 List<Int32> 转换为 IEnumerable<object>