Удалить весь текст, кроме конкретного текста и значения Regex - PullRequest
2 голосов
/ 11 марта 2019

У меня проблема с RegEX. У меня есть вывод, как это.

Number of rooms 
2
Price
120000
Square in meter
60

Я пытаюсь добиться этого: я хочу удалить весь текст, кроме «Количество комнат 2». Мое значение «2» изменяется. Пока у меня есть такое выражение:

<?php 
   $str = get_field('all'); 
   preg_match('/ Number of rooms \s*(\d+)/' , $str, $matches); 
   echo $matches[1]; 
?>

Ответы [ 4 ]

2 голосов
/ 11 марта 2019

Удалить предшествующий пробел перед словом Number:

preg_match('/Number of rooms \s*(\d+)/' , $str, $matches); 
1 голос
/ 11 марта 2019

Удалить пробел до Number и после rooms в вашем регулярном выражении:

$str = 'Number of rooms 
2
Price
120000
Square in meter
60'; 
preg_match('/Number of rooms\s*(\d+)/' , $str, $matches); 
print_r($matches); 

Выход:

Array
(
    [0] => Number of rooms 
2
    [1] => 2
)
0 голосов
/ 11 марта 2019

Как говорили другие, это пространство. Вы можете решить это с удалением пробела или сделать его необязательным с помощью *.

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

preg_match('/number of rooms\s*(\d+)/im', $str, $m);
var_dump($m);
0 голосов
/ 11 марта 2019

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

$str = get_field('all'); 
$str_array = explode("\n",$str); 
$new_str=$str_array[0]." ".$str_array[1]; 
echo $new_str;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...