Pregunta

What regex could do the following?

  1. Remove all whitespace except when not between two alphanumeric characters
  2. When between two alphanumeric characters, replace by a single space
¿Fue útil?

Solución

A simple solution would be replacing

(\w )\s*(\w)|\s+

With \1\2.

This would replace the possible multiple whitespaces between two alphnum by a single one, and erase all the others. As it is it (obviously) doesn't account for spaces inside quotes and all "special cases" though.

See demo here.

Otros consejos

To remove the spaces except when surrounded by alpha-numerics:

'/(?<![a-zA-z0-9 ]) +| +(?! *[a-zA-z0-9])/'

Online Demo 1

And to replace spaces by single space use this regex:

'/(?<=[a-zA-z0-9]) +(?=[a-zA-z0-9])/'

Online Demo 2

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top