正则表达式适用于正则表达式测试程序,但在php中不起作用

时间:2017-09-14 12:52:05

标签: php regex

所以我试图获得有关房地产网站标题的一些信息。

他们看起来像那样

- Appartement  2 pièces 42 m² à louer Saint Ouen 93400, 765 € - Logic-immo.com
- Location appartement 2  pièces 47  m² Clichy (92) - 870  € - A Vendre A Louer
- Location appartement 3  pièces 67  m² Saint Ouen (93) - 1 065  € - A Vendre A Louer

我尝试检索:租金的价格

为此我使用以下正则表达式:

([0-9]?\s*[0-9]+\s*€)

你可以看到测试人员的工作:https://regex101.com/r/RRYnMX/1(我试过其他测试人员)

在我的php中看起来像这样:

    desc = $result['a_description'];
    $re = '/([0-9]?\s*[0-9]+\s*€)/';
    preg_match_all($re,$desc, $prix, PREG_SET_ORDER, 0);
    print_r($prix);

结果很好,但在3个例子的最后一个案例中,它只返回:

[0] => Array
        (
            [0] => 065  €
            [1] => 065  €
        )

我尝试了很多不同的可能性,但似乎都没有效果。

编辑

它适用于前两个例子:

Array
(
    [0] => Array
        (
            [0] =>  740 €
            [1] =>  740 €
        )

)
Array
(
    [0] => Array
        (
            [0] =>  870  €
            [1] =>  870  €
        )

)

编辑2:

$re = '/([0-9]?\s*[0-9]+)\s*€/u';

完全停止工作

我试过

$re = '/([0-9]?\s*[0-9]+)\s*\x80/';

完全停止工作

我试过

$re = '/([0-9]?\s+[0-9]+)\s*€/';

(我用\ s +改变了\ s *) 完全停止工作

我试过了:https://regex101.com/r/RRYnMX/3

适用于所有测试人员,但不适用于PHP上的1064。这是链接:http://aeronet.be/appart/update.php

这是文本输出:

string(82) " Appartement  2 pièces 42 m² à louer Saint Ouen 93400, 765 € - Logic-immo.com"

 765

string(89) "Location appartement 2  pièces 47  m² Clichy (92) - 870  € - A Vendre A Louer"

 870

string(82) " Appartement  2 pièces 41 m² à louer Saint Ouen 93400, 910 € - Logic-immo.com"

 910

string(82) " Appartement  3 pièces 46 m² à louer Saint Ouen 93400, 850 € - Logic-immo.com"

 850

string(100) "Location appartement 3  pièces 67  m² Saint Ouen (93) - 1 065  € - A Vendre A Louer"

065

string(89) "Location appartement 2  pièces 48  m² Clichy (92) - 980  € - A Vendre A Louer"

 980

string(93) "Location appartement 3  pièces 52  m² Saint Ouen (93) - 980  € - A Vendre A Louer"

 980

0 个答案:

没有答案