如何将特定字符串之后的所有字符串放入php中的数组中

青少年

我有一个这样的字符串,

$string = "You have to know [#4], [#2] and [#5] too";

我想将“[#”字符串之后的所有值都放入一个数组中。

我正在使用一种方法,这是有效的。但是如果有一个纯文本并且没有“[]”那么它就会出错。

我正在使用这种方法,

$search_string = "[";
    $count = 0;
    $ids = array();

    for ($i = 0; $i < strlen($string); $i++) {
        $position = strpos($string, $search_string , $count);
        if ($position == $count) {
            $ids[] = $string[$position + 2];
        }
        $count++;
    }

有什么办法让它合适吗?

我的目标是将数字放入“[#”字符串之后的 $ids 数组中,如果没有大括号,则 count($ids) 将为 0

Raina77ow

当您在某个目标字符串中寻找特定模式时,一种常见的方法是使用preg_match_all()函数。例如:

$string = "You have to know [#4], [#2] and [#5] too";
$ids = [];
preg_match_all('/\\[#(\d+)[^]]*]/', $string, $ids);

print_r($ids[1]);

在这种情况下,使用模式/\[#\d+([^]]*)]/它匹配所有以 开头的序列[#,后跟至少一位数字,后跟任意数量的非]字符,后跟]. 使用捕获组时,您要查找的值存储在$ids[1].

请注意,对于没有任何目标序列的字符串,将没有匹配项,因此$ids[1]将是一个空数组 - 这看起来是您想要的。

另请注意,如果您只想计算匹配的数量,您甚至不需要$ids作为参数提供preg_match_all- 只需使用其返回值:

$string = "You have to know [#4], [#2] and [#5] too";
var_dump( preg_match_all('/\\[#([^]]+)]/', $string) ); // int(3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串放入数组中

如何将特定字符串与C中数组的所有元素进行比较?

如何将字符串中的特殊值放入数组字符串

如何将“字符”放入字符串文字中?

将字符串中的所有字符都放在特定字符之后?

如何将字符串中的所有 IP 地址获取到 bash 数组中

将字符数组中的字符放入字符串中,直到找到特定字符为止

如何将数组中对象的值放入字符串中

如何将字符串中每个引用的句子放入数组中(javascript)

如何将字符串中的各个单词放入javascript数组中?

如何将csv文件中的特定字符串放入列表中-python 3.4

PHP-如何将命名变量放入字符串中,并在变量之前定义字符串

PHP在数组中的特定字符串之后获取字符串

如何将字符串放入数组中,并用新行分隔?

如何将字符串从 0 索引开始放入数组中

如何将文本和字符串放入数组中

如何将字符串的每个单词放入Javascript数组中?

如何将逗号分隔的字符串元素放入 int 数组中?

如何将带有HTML标签的字符串放入数组或列表中?

如何将空数组放入模板字符串

如何将API返回字符串放入数组

如何将字符串放入对象数组?

如何将字符串放入数组

如何将字符串放入数组而不重复

如何将字符串变量放入 Python 数组?

如何在R中的特定点之后从字符串中删除所有字母?

如何将存储在字符串数组中的特定字符串打印到字符串数组的 ArrayList 中?

在特定索引之后从数组返回所有字符串

有什么适当的方法如何将整数放入字符串中?[C]