Нужно заменить все встречающиеся точки кроме таких случаев:
рис.
г.
табл.
Делаю так:
#([^\sрис.\s][^\sг.\s][^\sтабл.\s][.])#u
В итоге не заменяются кроме нужных еще и сочетания ри. та. абл.
И так далее.
Как сделать чтобы [^\sрис.\s] охватывало именно сочетания символов рис.
а не ри. ис.
Модификатор \w+ вроде не поможет или я не знаю куда его ставить.
Для наглядности, все необходимые точки будут заменены на тире "-":
$str = 'Нужно.заменить..все...встречающиеся. точки .кроме таких случаев: рис. г. табл.';
$str = preg_replace('~(?<!рис|г|табл)\.~', '-', $str);
var_dump($str);
Результат:
Нужно-заменить--все---встречающиеся- точки -кроме таких случаев: рис. г. табл.
Продвижение своими сайтами как стратегия роста и независимости