正则表达式以获取特定的样本部分

Joh*_*n S 2 .net c# regex vb.net

我试图使用正则表达式在下面的示例行中找到/匹配粗体的数字序列.

2520222 Rubble,Barney 1134525

1524356 Mudd,Harry S 14-40525 111.11

2324316 Mudd,Mary R 12-40000

我最接近的是

\d{0,2}-?\d+$
Run Code Online (Sandbox Code Playgroud)

但这只适用于我想捕获的部分因为$而在行尾.如果在行尾有一个不需要的项目(见第3行),它将始终是一个小数.有没有办法找到并退回一组到正确的序列?在RegEx中甚至可能吗?

Fed*_*zza 5

你可以使用这样的正则表达式环顾四周:

(?<= )[\d-]+(?=\s|$)
Run Code Online (Sandbox Code Playgroud)

工作演示

在此输入图像描述

如果你不想使用lookarounds,那么你可以使用这样的正则表达式:

,.*\s([\d-]+)(?:$|\s)
Run Code Online (Sandbox Code Playgroud)

工作演示