连字符之前和之后的正则表达式模式匹配

Nav*_*een 2 c# regex

我有一个像这样的字符串:

"(33) 3669-0210 Gerencia"
Run Code Online (Sandbox Code Playgroud)

我试图获得之后/之前的所有数字 - (连字符),直到在C#中使用Regex在两端找到一个空格.

输出应该是

"3669-0210"
Run Code Online (Sandbox Code Playgroud)

有人可以帮助使用可在C#中运行的Regex表达式吗?

das*_*ght 6

您可以使用此表达式:

\b\d+-\d+\b
Run Code Online (Sandbox Code Playgroud)

它是一个非捕获字边界指示符,后跟一个或多个数字,后跟连字符,一个或多个数字,最后是另一个非捕获字边界.

如果要匹配的数字总是4位数,则更准确:

\b\d{4}-\d{4}\b
Run Code Online (Sandbox Code Playgroud)