前瞻功能

时间:2015-11-30 11:59:41

标签: php function variables 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);
}

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您需要调用preg_match()的重载版本,该版本接受包含匹配项的数组作为第三个参数。匹配的数字(在括号中)将在$results数组的 second 位置提供。只需访问此值,您应该很高兴:

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

顺便说一句,$results[0]包含完整的输入字符串。

如果要测试工作正则表达式,请单击下面的链接。

Regex101

答案 1 :(得分:0)

好的,谢谢蒂姆! 你的正则表达式很好。正确的功能是:

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

谢谢你的时间!