2014-08-28 6 views
0

I'have текст состоит из множества строк и для каждой строки, если проверка, правда, я хотел бы получить конкретный один имеет некоторые атрибуты:PHP извлечение подстроки из строки в тексте

  1. строка начинается со знака как «атм»
  2. после знака есть цифровая часть с переменной длиной

т.е. слово может быть как atm123456 или atm7890

Любая помощь оценил, спасибо.

+2

Покажите нам некоторые из кода, что вы пытались и т.д. –

+0

я еще не сделали еще ничего, я не могу понять решение .. – Luke

+0

что-то вроде подстрока ($ текст, $ start-point, $ lenght), но как вычислить длину числовой части? – Luke

ответ

1

Вы можете использовать регулярные выражения и preg_match() функции

$string = "atm123456"; 
$pattern = "(atm\d+)"; 
preg_match($pattern, $string, $matches); // you may use preg_match_all() as well 
print_r($matches); 

Выход:

Array 
(
    [0] => atm123456 
) 

PHP demo | Regex demo

+0

это прекрасно, спасибо! – Luke

1

Вы можете попробовать это

$thestring='atm123456'; 
    $thestrToEx = explode(' ',$thestring); 
    $thestrToExArr=array_walk($thestrToEx,'intval'); 
    $theValues=explode($thestrToExArr,$thestring); 
    echo $thestrToExArr.$theValues[1]; 
+0

полезная благодарность – Luke

1

в случае нескольких значений или повторных предметов. Вы можете использовать preg_match_all как этот

$string = "atm123456 with atm7890 items"; 
$pattern = "(atm\d+)"; 
preg_match_all($pattern, $string, $matches); 
print_r($matches); 
+0

Какой смысл копировать мой ответ? – hex494D49

+0

сэр, я просто даю опцию в случае preg_match_all со строковым примером, вы просто рассматривали только preg_match. –

+0

это как решение hex494D49 Кстати это нормально – Luke

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