Регулярка php удалить пробел?
Могут быть строки вида:
- 3 д панель
- панель 3 д
- панель 3 Д
- плитка 3 д. (может быть любой знак препинания)
- ул. Степана Разина 23 д 3 кв 3 (23 д Не должно замениться)
Если будет 223 д или 223 дом не должно заменяться. Нужно что бы в строке "3 д" заменилось на "3д" ли "3д.", может быть любой знак препинания после "д". Так же может быть большая "Д"
Помогите пожалуйста в регулярках не силен?
Ответы (2 шт):
Автор решения: teran
→ Ссылка
видимо как-то так.
негативный просмотр назад, чтобы проверить что нет других цифр пред 3. Один и более пробелов между 3 и д и какой-нибудь разделитель после д
$txt = preg_replace('/(?<!\d)3\s+д\b/uigm', "3д", $txt)
Автор решения: Jigan2
→ Ссылка
В итоге сделал так
$text = preg_replace('#\b(3)\s*($|[Дд])($|[ .,!?:;])?#u', '$1$2$3', $text);
Благодарю всех за помощь!