[英]RegEx in PHP: find the first matching string
我想在非常長的文本中找到第一個匹配的字符串。 我知道我可以使用preg_grep()並獲取返回數組的第一個元素。 但是,如果我只需要第一場比賽(或者我知道事先只有一場比賽)那么這樣做是沒有效率的。 有什么建議嗎?
preg_match()返回模式匹配的次數。 這將是0次(不匹配)或1次,因為preg_match()將在第一次匹配后停止搜索。 相反,preg_match_all()將一直持續到主題結束。 如果發生錯誤,preg_match()返回FALSE。
這是一個如何做到這一點的例子:
$string = 'A01B1/00asdqwe';
$pattern = '~^[A-Z][0-9][0-9][A-Z][0-9]+~';
if (preg_match($pattern, $string, $match) ) {
echo "We have matched: $match[0]\n";
} else {
echo "Not matched\n";
}
您可以嘗試print_r($match)
來檢查數組結構並測試正則表達式。
關於正則表達式的旁注:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.