Регулярное выражение для удаления 1 кода из международных номеров в php

#php #regex

#php #регулярное выражение

Вопрос:

У меня есть набор строк чисел, и я хочу удалить 1 там, где он найден.

у меня есть этот набор

 $arr="605-2969,
408-605-2969,
  1-408-605-2969,
  1 (408) 605-2969,
(408) 605-2969,
(408)-605-2969,
14086052969,
4086052969,
6052969";
  

и хотите удалить 1 из него.

я попробовал следующий код:

 $str = ltrim($arr, '  1');
var_dump($str); 
  

но это не работает.Пожалуйста, помогите мне или дайте мне идею для решения этой проблемы.
я хочу, чтобы вывод был как в массиве:

«4086632208,4088072425,4086052969,…»

Комментарии:

1. Y не str_replace

2. как это делается с помощью str_replace. я пробовал, но не получал выходных данных

3. что-то вроде this:- eval.in/659776

4. да, нужно что-то подобное, но можем ли мы получить числа без дополнительных символов и 1

5. Ваш вопрос об удалении всех специальных символов или просто 1 ? Может быть, вы хотите preg_replace .

Ответ №1:

Вы можете использовать str_replace() как:

 $str = str_replace('  1','',$arr);

var_dump($str);
  

Ответ №2:

Используется preg_replace() для удаления всего, что соответствует шаблону. Шаблон будет соответствовать 1 и любому символу, кроме цифр и запятой.

 $str = preg_replace('/  1|[^d,]/', '', $arr);
  

ДЕМОНСТРАЦИЯ