2012-08-03 2 views
1

У меня есть список номеров НДС. Проблема в том, что некоторые из них содержат два символа ISO кода ISO в начале, другие - нет. Мне нужно разбить эти 2 буквы, если они существуют, например, es7782173x становится 7782773x и 969652255801 остается неизменным. Пожалуйста, помогите мне с регулярным выражением.регулярное выражение PHP

+1

Это необязательно требует регулярных выражений. –

+0

Возможно, быстрее выполнить простую проверку строки, чтобы убедиться, что первый символ не является числовым, а затем извлечь подстроку, если она есть. regex будет меньше строк кода, но обычная оговорка: любая проблема, решение которой требует регулярное выражение, теперь имеет две проблемы. –

+1

Что вы пробовали? – Evert

ответ

4

PHP-регулярное выражение, чтобы заменить все буквы с самого начала:

$vat = 'es7782173x'; 
$vat = preg_replace('/^\D+/', '', $vat); 

\D соответствует ничего, что не цифра, и заменить его с пустой строкой '' эффективно удаляет его с самого начала (^ якоря). + соответствует 1 или более вхождению.

+0

приятно объяснил – Salepate

+2

Удалил мой ответ, поскольку он был по существу тем же, что и ваш, может быть стоит упомянуть, что это также работает с массивом в качестве ввода, и в этом случае он вернет массив в качестве вывода. Поэтому нет необходимости в цикле и preg_replace каждой записи в списке. – Leigh

+0

Это замечательно, спасибо –

Смежные вопросы