我想要包含一个数字,然后是一个短划线,然后是另一个数字。
@ Regex.Replace(@ a,@“[^ 0-9 + - ]”,“”)
......但这包括所有破折号。
替换这样的字符串:
Text (Characters!+-) 11-20 text-dashes-after-not counted
成为公正:
11-20
问题在于它允许任意数量的短划线,而我只想在数字之间包含一个 - 在第一个数字,短划线和第二个数字之间有任意数量的空格。
答案 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);