Razor Regex替换所有数字和一个短划线

时间:2015-05-14 17:37:15

标签: regex razor model-view-controller

我想要包含一个数字,然后是一个短划线,然后是另一个数字。

@ Regex.Replace(@ a,@“[^ 0-9 + - ]”,“”)

......但这包括所有破折号。

替换这样的字符串:

Text (Characters!+-) 11-20 text-dashes-after-not counted

成为公正:

11-20

http://regexr.com/3b0k7

问题在于它允许任意数量的短划线,而我只想在数字之间包含一个 - 在第一个数字,短划线和第二个数字之间有任意数量的空格。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

@Regex.Replace(@a, @"^.*?\b(\d+\s*-\s*\d+)\b.*", "$1")

答案 1 :(得分:0)

这基本上与Amit的建议相似,但您也可以使用命名组捕获它。

Regex regex = new Regex(@"(?<test>\d+-\d+)");

Match match = regex.Match(sample);

if (match.Success)
    Console.WriteLine(match.Groups["test"].Value);