Sanitize sentence in php

Название может показаться странным, но я вроде как пытаюсь настроить этот preg_replace, который заботится о беспорядочных авторах для textarea. Он должен:

  1. если есть восклицательный знак, то не должно быть еще одного подряд.
  2. если есть ., запятая побеждает, и она должна быть ,
  3. если есть один+ пробел перед запятой, она должна быть сокращена до нуля.
  4. предложение не может начинаться или заканчиваться запятой.
  5. никогда не должно быть более 2 одинаковых букв, соединенных вместе.
  6. после запятой всегда должен быть пробел.

Например:

  • Мой дом, который зеленый..., красивый!
  • Мой дом..., который зеленый, хороший!!!
  • Мой дом, который зеленый,,,,,,,,,, хороший!!!

Конечным результатом всегда должно быть:

Мой дом, который зеленый, красивый!

Есть ли уже созданный regex, который позаботится об этом?

Решение посмотрите FakeRainBrigand's решение ниже!

9
задан Community 23 May 2017 в 10:08
поделиться