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

时间:2012-05-25 14:18:03

标签: c# regex

我有一个这样的字符串:

"(33) 3669-0210 Gerencia"

我试图获取之后/之前的所有数字 - (连字符),直到在C#中使用正则表达式找到两个空格。

输出应为

"3669-0210"

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

3 个答案:

答案 0 :(得分:6)

您可以使用以下表达式:

\b\d+-\d+\b

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

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

\b\d{4}-\d{4}\b

答案 1 :(得分:3)

"[0-9]+-[0-9]+"这应该足够了

说明:

[0-9]+ - 至少一个号码

- - 连字符

[0-9]+ - 至少一个号码

答案 2 :(得分:1)

您可以使用以下表达式:

\S+-\S+

它是一个或多个非空白字符,后跟一个连字符,后跟一个或多个非空白字符。