我对正则有问题。我有这样的输出。
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];
?>
删除Number
Word之前的前面空间:
preg_match('/Number of rooms s*(d+)/' , $str, $matches);
在 Number
之前卸下空间,在您的正则 rooms
之后:
$str = 'Number of rooms
2
Price
120000
Square in meter
60';
preg_match('/Number of roomss*(d+)/' , $str, $matches);
print_r($matches);
输出:
Array
(
[0] => Number of rooms
2
[1] => 2
)
正如其他人所说的那是空间。您可以通过删除空间或使用*
进行可选来解决它。
我建议使用REGEX选项im
,因为情况不敏感并将字符串视为多层次。
preg_match('/number of roomss*(d+)/im', $str, $m);
var_dump($m);
您可以这样尝试:
$str = get_field('all');
$str_array = explode("n",$str);
$new_str=$str_array[0]." ".$str_array[1];
echo $new_str;