У меня проблемы с обработкой строк в php.Я пишу функцию, которая принимает строковый параметр, слова которого разделены "" или "_".Я хочу, чтобы функция удаляла все не алфавитные символы и возвращала слова, разделенные «-».Это то, что у меня есть до сих пор:
function cleanCategoryForUrl($strCategory){
$newCategory = str_replace('_', '-', $strCategory); //First replacement
echo ($newCategory);
$newCategory = str_replace(' ', '-', $newCategory); //Second replacement
echo ($newCategory);
$newCategory = preg_replace('/[^a-z-]/i', '', $strCategory); //Final replacement
echo ($newCategory);
return $newCategory;
}
Первая и вторая замены получат разделение слов на «-» вместо «» или «_».Окончательная замена станет красной для всех символов, которые не являются буквенными или "-".
Но когда я проверяю код, я получаю неожиданные результаты после окончательной замены.
При вводеиз "Home_Health" я получаю это напечатано:
Home-Health
Home-Health
HomeHealth
Первые два выхода, как и ожидалось, но третий удалил "-" (что не должно было случиться).Я подозреваю, что с моим шаблоном регулярных выражений что-то не так, но когда я проверяю его на http://gskinner.com/RegExr/., слова хорошо, я новичок в использовании регулярных выражений и не могу понять, что не так.Пожалуйста, помогите