$string = "I am learn*ing *PHP today*";
$newString = preg_replace('/(\w)\*(\w)/', '$1\'$2', $string);
// $newString = "I am learn'ing *PHP today* "
Соответствует звездочке, окруженной символами слова (буквы, цифры, подчеркивания).Если вы хотите использовать только буквы алфавита, вы можете сделать:
preg_replace('/([a-zA-Z])\*([a-zA-Z])/', '$1\'$2', 'I am learn*ing *PHP today*');