Поскольку \w
соответствует буквам, цифрам, подчеркиванию и некоторым комбинированным знакам, вы должны использовать \p{L}
или - если вам нужно разрешить только буквы ASCII - [a-zA-Z]
.
Пример решения, которое соответствует 1
в начале слова и содержит 1+ букв:
Regex.Replace("1b-12", @"\b1(?=\p{L}+\b)", "")
Regex.Replace("1b-12", @"\b1(?=[a-zA-Z]+\b)", "")
См. регулярное выражение demo . Обратите внимание, что вам не нужно RegexOptions.IgnoreCase
, поскольку \p{L}
и [a-zA-Z]
совпадают как с заглавными, так и с заглавными буквами.
Подробности
\b
- здесь , начало слова 1
- 1
char (?=\p{L}+\b)
- сразу за ним следуют 1+ буквы и затем конец слова. Кроме того, поскольку это шаблон предварительного просмотра, который не использует символы, ваш шаблон замены может оставаться пустым.