Простое регулярное выражение с использованием preg_match - PullRequest
0 голосов
/ 12 сентября 2011

Я пытаюсь получить трехзначное число после этого слова и точки с запятой.

REF: 222

Код, который я имею ниже, работает, но не очень хорош, потому что он получает цифры из 3d-цифрстрока $ decoded_message.

Что я действительно хочу, так это только взять трехзначное число после слова REF: ###

if (preg_match("([0-9]{3})", $decoded_message, $matches)) {
  echo "Match was found <br />";
  echo "ref = ".$matches[0];

}

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Можно выполнить поиск REF: [0-9]{3}, а затем удалить часть REF:.

if (preg_match("/REF: [0-9]{3}/", $decoded_message, $matches)) {
  echo "Match was found <br />";
  echo "ref = ".substr( $matches[0], 5 );
}
1 голос
/ 12 сентября 2011

Вы можете просто заменить «REF:», используя

$output = preg_replace("/REF: /","", "REF: 222");

Впоследствии в $ output должно содержаться только число.

...