我想這些數字匹配內(「」)PHP正則表達式/的preg_match
$linkvar ="<a onclick="javascript:open('597967');" class="links">more</a>"
preg_match("^[0-9]$",$linkvar,$result);
我想這些數字匹配內(「」)PHP正則表達式/的preg_match
$linkvar ="<a onclick="javascript:open('597967');" class="links">more</a>"
preg_match("^[0-9]$",$linkvar,$result);
只有字符串恰好是一個數字,你的正則表達式纔會匹配。爲了配合僅內的報價,使用數字:
preg_match("/'(\d+)'/", $linkvar, $result);
var_dump($result[1]);
你的正則表達式只有在整個串是由建立,因爲^
和$
修飾符的一個號碼相匹配。您當前的正則表達式在人類語言翻譯成:
^
的意思是「這是字符串的開始」[0-9]
的意思是「匹配單個數字字符」$
的意思是「這是的結束字符串」將其更改爲:
preg_match("[0-9]+",$linkvar,$result);
或替換地,匹配的號碼的速記語法:
preg_match("\d+",$linkvar,$result);
的+
修飾符意味着「一個或多個」的數字必須被發現它是一個匹配。
此外,如果你想實際捕獲字符串中的數字,你需要添加圓括號來通知preg_match
你實際上想要「保存」數字。
^和$匹配的字符串,這意味着你正在尋找一個只包含數字字符串的開始和結束。刪除它們並添加一個加量詞,只留下「[0-9] +」,它會在字符串中找到第一組數字。
preg_match("[0-9]+",$linkvar,$result);