繁体   English   中英

为什么我的正则表达式返回 false?

[英]Why is my regex returning false?

好的,所以我从我的数据库中选择了一些抓取的文本并尝试解析电话号码。 它在那里,我没有收到任何错误,但var_dump返回int 0为什么? 这是代码

$query1 = "SELECT adtext, `key`  FROM usedcars WHERE `key` = $x";

    mysqli_query($conn, $query1);

    $link_result = mysqli_query($conn, $query1);
    $result = mysqli_fetch_assoc($link_result);



    //now parse that number

     $phone_number = preg_match("/^((([0-9]{1})*[- .(]*([0-9]{3})[- .)]*[0-9]{3}[- .]*[0-9]{4})+)*$/", $result['adtext']);

     var_dump($phone_number);
    }

顺便说一句,这是循环遍历数据库中的每一行的一部分。 就像我说的,它不会抛出错误,只是无法识别数字,所以我认为正则表达式或 idk 可能有问题。 这是特定文本的preg_match -ing

    2001 Ford POS in great condition but definitely Im a liar and it will break down before you get home. Fix.Or.Repair.Daily that what I always say<br>
<br>
NO Blocked Calls<br>
<br>
I AM IN WASHINGTON D.C / VIRGINIA / MARYLAND Local buyers only<br>
<br>
<b>No warranty</b><br>Forsale by owner<br>
<br>
<b>Accepting first offer</b>
<b>24 hours call  <u><b>Call Me ☎ 202-510-5939</b></b></u>


   </div>


     <p class="metaInfoDisplay">Poster's Reputation: 0<br></p>





     <div style="padding-left:2em;">
       &bull; Location: 

         Northern Virginia, ☎ 202-210-5936

     </div>




     <div style="padding-left:2em;"><br />&bull; Post ID: 1234567 washingtondc</div>


       <div id="OtherAdsByThisUser" data-oid="7654321">

请帮助一个慢人!

([0-9]?[- .(]*[0-9]{3}[- .)][0-9]{3}[- .][0-9]{4})

不完全理解你的正则表达式,但你可以试试这个。不过需要更多的测试。试试这里。

http://regex101.com/r/lZ5mN8/1

由于锚点^&您的正则表达式将不起作用。 它们将匹配行的开头和结尾。 我已删除它们并修改了您的正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM