Невозможно воспроизвести:
using System;
using System.Text.RegularExpressions;
class Test
{
static void Main()
{
var input = "this=is+/* wrong!@# string^&*(";
var output = Regex.Replace(input, "[^0-9A-Za-z]+", "-");
Console.WriteLine(output);
}
}
Вывод: this-is-wrong-string-
Таким образом, вы можете использовать TrimEnd('-')
, чтобы избавиться от конечного "-", но в противном случае это выглядитхорошо для меня.Сравните ваш код с моей короткой, но полной программой, и если вы не можете найти в чем дело, придумайте аналогичную короткую, но полную программу, которая демонстрирует проблему.