@rudejah

Как составить специальное регулярное выражение для обработки строк в php?

Доброго утра, или что там у вас...

В регулярных выражениях - я плох(

Но хочу понять как вытащить из строк вида
" Оплата за тра-ляля ололо лсч 82009-703^без налога НДС"
"лсч 82009703"
"оплата по счету 82009-703"
и тому подобное, еще бывают строчки с ";" , "!" , "\" , "/", иногда слитно с текстом и прочее (как смог вбить оператор), только лицевой счет.

Как в данной ситуации вытащить только лс такого вида, как на примере (каждый раз он разный, но ясно одно - он 8 шифр) иногда с тире, иногда без. Без учета остального текста...

Если получится, то еще и "Фамилия И. О." от туда дёргать, если есть... но это я уже слишком много хочу =)

Помогите Люди добрые =)
  • Вопрос задан
  • 2337 просмотров
Пригласить эксперта
Ответы на вопрос 3
OlegLazarenko
@OlegLazarenko
//$str = 'Оплата за тра-ляля ололо лсч 82009-703^без налога НДС';
$str = 'Оплата за тра-ляля ололо лсч 40702810802200142513^без налога НДС';
$exp = '/[\d-]{8,}/'; // найти строку длинной от 8-ми символов, состоящую лишь из цыфр и знака дефис
preg_match($exp, $str, $res);
var_dump($res);
Ответ написан
Комментировать
@rudejah Автор вопроса
Всё супер, только появилась еще одна проблема...
Оказывается в этих полях попадается еще "40702810802200142513" что подходит под эту регулярку(
Ответ написан
agnusvedal
@agnusvedal
Если известно, что счет содержать может 8 цифр или не содержит более 9-ти символов, то ограничить этот регэкс можно так.

$exp = '/[\d-]{8,9}/';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы