$str = 'title="room 5 stars"';
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
我需要從標題中抓取數字5。正則表達式不起作用!使用Preg_Match抓取編號
如果我這樣做:
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
我得到:
room 5 stars
然而,這一個不返回任何東西:
'/title="([0-9]+)"/sm'
哪兒我去錯了嗎?
你有沒有實際測試過你的正則表達式?它將匹配字符串,但不會捕獲該數字。 – ohaal 2012-02-27 13:12:04
@ohaal沒有冒犯,但你能告訴我這個錯誤,所以我不會在將來做。我編輯了組匹配的代碼。 – Vishal 2012-02-27 13:19:00
我很抱歉在我之前的評論中沒有詳細說明,我很着急。刪除了-1,因爲它似乎已經修復了您的答案。你有'/ title =「。*?(\ d)*。*?」/',它沒有捕獲實際的數字。原因是'*'等價於'{0,}',並且由於非貪婪匹配'。*?'沒有任何可匹配的地方,所有的字符串都會與最後一個非貪婪''*?'匹配。 – ohaal 2012-02-27 13:51:25