我有输入字符串:
"Monday 11:30am,11 v 2,3 v 4"
我需要更换:
11飓风2与团队 abc3与Vipers4与Dodgers1和Frozen Rope
等等....
但我不想在 11 中将 1 替换两次。
我显然不了解正则表达式。但我试过这样的事情:
string text = File.ReadAllText(CSVpath);
text = Regex.Replace(text,
string.Format(@"[{0} v]", CurrentCode),
string.Format(@"{0} v", TeamName));
text = Regex.Replace(text,
string.Format(@"[v {0}]", CurrentCode),
string.Format(@"v {0}", TeamName));
基于上面的输入字符串,输出将是:
"Monday 11:30am,Hurricanes v Team abc,Vipers v Dodgers"
请您参考如下方法:
试试这个正则表达式:
var subject = "Monday 11:30am,11 v 2,3 v 4,5 v 6";
var replaced = Regex.Replace(subject,@"(\d+)\s*v\s*(\d+)","Team$1 with Team$2");
模式分解:
(\d+)捕获数字序列并将其保存在 group1 中\s*v\s*通过两侧零个或多个空格检查v字符包装器。(\d+)捕获数字序列并将其保存在 group2 中
替换:
$1 用 Team 和第一组的匹配替换第一组。因此 11 将替换为 Team11,然后将文字 with 和 Team 文字与 $2 相加,附加 group2 的匹配项。
这里是 Regex101 demo
