string pattern = ".+\\";
foreach (string file in files){
richTextBox2.Text += Regex.Replace(file, @pattern, String.Empty) +"\n";
}
我正在尝试做一个简单的模式匹配和替换,文件由完整路径组成,例如:d:\test\t.txt
。但每当它粉碎并说Illegal \ at the end of the pattern.
我不知道哪里出错了?
答案 0 :(得分:3)
您需要转义反斜杠两次:
string pattern = ".+\\\\";
首先,您需要在字符串处理级别转义它,因此"\\"
变为\
到正则表达式引擎。
其次,正则表达式引擎也使用反斜杠来表示特殊的转义序列,因此如果要将文字反斜杠与正则表达式匹配,则需要使用\\
。
由于反斜杠在正则表达式中很常见,因此使用逐字符串通常是个好主意(参见Rahul的解决方案)。
答案 1 :(得分:2)