簡體   English   中英

PHP正則表達式在字符串中查找值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM