[^a-z\s]
при установленном флаге игнорирования соответствует чему-либо, кроме букв и пробельных символов.^
в начале класса символов (значение между []
) отменяет класс символов.
Чтобы заменить пробелы, вы можете просто заменить \s+
пустыми строками или, если вам нужно сопоставитьтолько буквы заменяют
(?<=[a-z])\s+(?=[a-z])
на пустую строчку.Второе регулярное выражение будет соответствовать строке пробелов между двумя буквами;чтобы учесть начало / конец строк, используйте
(?<=(^|[a-z]))\s+(?=($|[a-z]))
или
\b\s+\b
Второй будет соответствовать пробелам между двумя границами слов, которые включают символы символов, такие как точка, запятая, дефиси т.д.