Я пытаюсь подготовить строку для использования в качестве списка каталогов. Я работаю с введенными пользователем названиями и должен удалить все, кроме букв и цифр, а затем заменить пробелы _
.. Мне удалось приблизиться к этому с помощью preg_replace
, но у вас нет часов, чтобы узнать, как входы и выходы Regex в данный момент.Удаление всех букв и цифр, замена пробелов. PHP Regex
Ниже приведен пример строки = This is a -string- that has /characters & other stuff! Let's filter it
. То, что я снимаю, это: this_is_a_string_that_has_characters_other_stuff_lets_filter_it
Мне удалось сблизиться с этим кодом, но места, где персонаж был удален после того, как он остался. Результат был двойной, что приемлемо, но не то, что я снимал.
Любая помощь была бы принята с благодарностью. Вот моя попытка:
<?php
$string = " This is a -string- that has /characters & other stuff! Let's filter it?";
$cleansedstring = trim($string);
$cleansedstring = strtolower($cleansedstring);
$cleansedstring = preg_replace('/[^ \w]+/', '', $cleansedstring);
$cleansedstring = preg_replace('[\s]', '_', $cleansedstring);
echo $cleansedstring;
?>
ОБНОВЛЕНО Вот что я понял, от некоторых предложений здесь, кажется, довольно чистый и выводит строку я снимала для .. предложения по улучшению?
$string = " This is a -string- _that has /characters & other stuff! Let's filter it?23";
$cleansedstring = trim($string);
$cleansedstring = strtolower($cleansedstring);
$cleansedstring = preg_replace('/[^ \pL \pN]/', '', $cleansedstring);
$cleansedstring = preg_replace('[\s+]', '_', $cleansedstring);
echo $cleansedstring;
Письма '' pL'. Числа - '\ pN'. – tchrist
Спасибо, что помогло .. :) – NightMICU