Рубрики

Как удалить все непечатаемые символы в строке в PHP?

Дана строка, которая содержит печатные и непечатаемые символы. Задача состоит в том, чтобы удалить все непечатаемые символы из строки. Пробел () является первым печатаемым символом, а тильда (~) — последним печатаемым символом ASCII. Таким образом, задача заменить все символы, попадающие в этот диапазон, означает брать только те символы, которые встречаются в диапазоне (32-127). Эта задача выполняется только с помощью регулярных выражений различных типов.

Пример:

Input: str = "\n\nGeeks \n\n\n\tfor Geeks\n\t"
Output: Geeks for Geeks

Примечание. Символы новой строки (/ n) и табуляции (/ t) не являются печатными символами.

Метод 1: Использование общего регулярного выражения: доступно много регулярных выражений. Лучшее решение — удалить все символы, не входящие в ASCII, из входной строки, что можно сделать с помощью этого preg_replace.

Пример:

<?PHP
// PHP программа для удаления всего непечатаемого
// символ из строки

  
// Строка с непечатными символами

$str = "Geeks šžfor ÂGee\tks\n";

  
// Использование метода preg_replace для удаления всех
// непечатный символ из строки

$str = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $str);

  
// Показать строку изменения

echo($str);

  
?>

Выход:

Geeks for Geeks

Метод 2: Используйте регулярное выражение print. Другое возможное решение — использовать регулярное выражение print . Регулярное выражение [: print:] означает «любой печатный символ» .

Пример:

   
<?PHP
// PHP программа для удаления всего непечатаемого
// символ из строки

  
// Строка с непечатаемым символом

$str = "Geeks šžfor ÂGee\tks\n";

  
// Использование метода preg_replace для удаления всех
// непечатный символ из строки

$str = preg_replace('/[[:^print:]]/', '', $str);

  
// Показать строку изменения

echo($str);

  
?>

Выход:

Geeks for Geeks

Рекомендуемые посты:

Как удалить все непечатаемые символы в строке в PHP?

0.00 (0%) 0 votes