Функция Lookahead

у меня есть это

87||2|#88||4|#89|

или же

87||1|#88||3|#89|

или же

95||1|#88||1|#89|

или другие переменные данные. Каждый раз, когда есть ...|#88||number|...)Мне нужно захватить «число» и «напечатать» его.

Через некоторые из полученных предложений я написал это, но результат все еще не верен.

function caratteristiche1($property_bedrooms) {
$new = preg_match("/\|88\|\|(\d+?)\b/", $property_bedrooms);
print_r($new);
}

Что я могу сделать?

1

Решение

Вам нужно вызвать перегруженную версию preg_match() который принимает массив, содержащий совпадения, в качестве третьего параметра. Соответствующий номер (в скобках) будет доступен в второй положение $results массив. Просто получите доступ к этому значению, и у вас все получится:

function caratteristiche1($property_bedrooms) {
$new = preg_match("/\|#88\|\|(\d+)/", $property_bedrooms, $results);
print_r($results[1]);
}

Кстати, $results[0] содержит полную строку ввода.

Нажмите на ссылку ниже, если вы хотите проверить работающее регулярное выражение.

Regex101

0

Другие решения

Хорошо, спасибо, Тим!
Ваш Regex хорош. Правильная функция:

function caratteristiche1($property_bedrooms) {
$new = preg_match('/\\|#88\\|\\|(\\d+)/', $property_bedrooms, $results);
print_r($results[1]);
}

Спасибо за ваше время!

0

По вопросам рекламы [email protected]