Если я правильно понял ваш вопрос - вы хотите заменить пробелом не всю группу «длиннее одного символа, содержащего дефис и не содержать цифр» - но только дефис, содержащийся в этих группах.
Для этого вам не нужно менять выражение регулярного выражения, так как оно выполняет свою работу и находит эти группы.
Все, что вам нужно - это еще одно переопределение метода Regex.Replace, который принимает строку замены, но MatchEvaluator делегат. Этот делегат вызывается в каждом матче, и из этого делегата вы должны возвращать либо исходную строку, либо строку замены, в которой вы нуждаетесь.
Так что ваш код может выглядеть следующим образом:
new Regex(@"\w{2,}\-\D", RegexOptions.IgnoreCase)
.Replace(s, m => m.Groups[0].Value.Replace("-", " "));
Что вы пробовали? Используйте Regex.Replace, чтобы найти и убрать соответствующие слова и заменить их по своему усмотрению. Это не должно быть сложно, если вы знаете регулярные выражения. – AFract
Я новичок в регулярном выражении. Какое выражение мне нужно? – Matansh
Я написал ответ ниже. – AFract