Question

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
Était-ce utile?

La solution

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.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top