0

好的,因为我从来没有真正掌握 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) 等等...

4

2 回答 2

2

首先,您应该了解正则表达式。我强烈推荐这个教程

然后您可以在PHP 的文档中阅读一些 PHP 特定的正则表达式问题。

但是为了让你开始,这将解决你的问题:

preg_match_all("/\[[^\]=]*=(\d+)\]/", $string, $matches);

现在$matches[1]将是您想要的数组。请注意,这不依赖于特定的字符串get_this_value

为了您通过链接页面实际自学一些正则表达式,我不会详细解释这个正则表达式,而只是告诉您我使用过的概念。未转义的方括号[...]标记一个字符类。在这种情况下(由于^)一个否定的。\d是一个内置的字符类+是一个重复量词。括号(...)标记一个捕获组

于 2012-11-11T23:34:18.377 回答
1
<?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
        )

)
*/
于 2012-11-11T23:22:19.653 回答