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
问题是它允许任意数量的破折号,我只想在数字之间包含一个 - 第一个数字、破折号和第二个数字之间有任意数量的空格。
您可以使用这个正则表达式:
@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);
我想包含一个数字,后跟一个破折号,然后是另一个数字。
@Regex.Replace(@a, @"[^0-9+-]", "")
...但这包括所有破折号。
像这样替换字符串:
Text (Characters!+-) 11-20 text-dashes-after-not counted
变得公正:
11-20
问题是它允许任意数量的破折号,我只想在数字之间包含一个 - 第一个数字、破折号和第二个数字之间有任意数量的空格。
您可以使用这个正则表达式:
@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);