我有一个字符串:
Apple1231 | C:\ asfae\drqw\QWER | 2342 |的1.txt
我有以下代码:
Regex line2parse = Regex.Match(line,@"(\|)(\|)(\|)(\d)");
if (line2parse < 2)
{
File.AppendAllText(workingdirform2 + "configuration.txt",
Run Code Online (Sandbox Code Playgroud)
我希望能够做的就是每次更换|后先|用\
所以我想写出
Apple1231 | C:\ asfae\drqw\QWER\2342\1.TXT
没有正则表达式你可以做到这一点:
string line = @"Apple1231|C:\asfae\drqw\qwer|2342|1.txt";
string[] parts = line.Split('|');
string clean = parts[0] + "|" + string.Join(@"\", parts, 1, parts.Length - 1);
Run Code Online (Sandbox Code Playgroud)
string.Join调用使用重载,允许您指定开始索引以跳过第一个项目.
+1 约翰。显然正则表达式不是最好的解决方案,但这是我的看法:
string original = @"Apple1231|C:\asfae\drqw\qwer|2342|1.txt";
Regex pattern = new Regex(@"(?<=.*\|)(?'rep'[^\|]*)\|");
string result = pattern.Replace(original, @"${rep}\");
Run Code Online (Sandbox Code Playgroud)
这比严格必要的更为通用,因为它将处理任意数量的替换。