基于this question正则表达式,\d+(?:-\d+)+将匹配此10-3-1和5-0。
示例:
This is 10-3-1 my string在执行匹配和反转之后,我希望它是这样的:
This is 1-3-10 my string请注意,10-3-1应该变成1-3-10,而不是正常的字符串反转,这将导致1-3-01。
发布于 2011-07-08 10:44:47
一个基本的算法是:
"10-3-1" ["10","3","1"] ["1","3","10"] "1-3-10" 发布于 2011-07-08 11:33:09
尽管问题已经在这里得到了回答,但这是一段略微修改了正则表达式的代码:
var text = "This is 10-3-1 and 5-2.";
var re = new Regex(@"((?<first>\d+)(?:-(?<parts>\d+))+)");
foreach (Match match in re.Matches(text))
{
var reverseSequence = match
.Groups["first"]
.Captures.Cast<Capture>()
.Concat(match.Groups["parts"].Captures.Cast<Capture>())
.Select(x => x.Value)
.Reverse()
.ToArray();
text = text.Replace(match.Value, string.Join("-", reverseSequence));
}https://stackoverflow.com/questions/6619398
复制相似问题