[英]PHP regex find value in string
好的,因為我從來沒有真正在PHP上掛過正則表達式,所以如果有人可以鏈接到一篇易於理解的文章,那將非常棒...
在這種情況下,我想在字符串中找到一個值。
如果例子
$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem ipsum";
我想要一個返回“ 10”的函數。 如果將其存儲在數組中,並且如果我希望它們在數組中存在多個,則該函數可以檢索其中的許多,這將是很可愛的。
$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem ipsum [get_this_value=9] etc etc";
會返回array(10,9)等等...
首先,您應該了解正則表達式。 我可以強烈推薦本教程 。
然后,您可以閱讀PHP文檔中有關特定於PHP的正則表達式問題的信息 。
但是,為了讓您入門,這可以解決您的問題:
preg_match_all("/\[[^\]=]*=(\d+)\]/", $string, $matches);
現在$matches[1]
將是您想要的數組。 請注意,這不依賴於特定的字符串get_this_value
。
為了使您真正通過鏈接的頁面教自己一些正則表達式,我不會詳細解釋此正則表達式,而只是告訴您我所使用的概念。 [...]
轉義的方括號標記字符類 。 在這種情況下(由於^
)被否定 。 \\d
是內置字符類 。 +
是重復量詞 。 括號(...)
標記捕獲組 。
<?php
$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem [get_this_value=13] ipsum";
preg_match_all("~\[get_this_value=(\d+)\]~i", $string, $matches);
print_r($matches);
/*
Array
(
[0] => Array
(
[0] => [get_this_value=10]
[1] => [get_this_value=13]
)
[1] => Array
(
[0] => 10
[1] => 13
)
)
*/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.