2014-09-01 71 views
-1

我在PHP中的以下問題:PHP正則表達式匹配號碼只digitis,無偏號

我想提取一些只擁有兩個數字,是不是部分更長一些。

我正在使用preg_match()並希望僅將該數字作爲匹配結果。

例如,"abc53abc"應該返回53,但"abc553abc"應該什麼也不返回。

我嘗試使用"/[0-9]{2}/",但與我得到53爲第一個例子,但55第二,這不是我想要的。

任何想法?謝謝!

回答

5

您需要負超前和負回顧後,

(?<!\d)\d{2}(?!\d) 

DEMO

說明:

  • (?<!\d)這種負回顧後發斷言,前面的字符不能是數字。
  • \d{2}匹配兩位數字。
  • (?!\d)否定性前瞻斷言下列字符不能是數字。
+0

完美,作品!謝謝 – kKre 2014-09-01 11:54:29

+0

不客氣:-) – 2014-09-01 11:54:53

0
preg_match("/([0-9]{2})/ui",$str,$match);