Razor Regex 替换除数字和破折号之外的所有内容

Razor Regex Replace All But Numbers and One Dash Between

我想包含一个数字,后跟一个破折号,然后是另一个数字。

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

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

像这样替换字符串:

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

变得公正:

11-20

http://regexr.com/3b0k7

问题是它允许任意数量的破折号,我只想在数字之间包含一个 - 第一个数字、破折号和第二个数字之间有任意数量的空格。

您可以使用这个正则表达式:

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

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

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

Match match = regex.Match(sample);

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