如何在PHP中的*和-上拆分字符串? - php

为了分割字符串,我使用了以下代码。

$string = "-sev*yes-sev1*no-sev2*yes";
split('[-*]', $string).

由于不建议使用split,请您提出一个将字符串拆分为数组的替代方法。我尝试过爆炸,但它没有达到我的目的。
输出应如下所示:

Array
(
    [0] => sev
    [1] => yes
    [2] =>  sev1
    [3] =>  no
    [4] =>  sev2
    [5] =>  yes
)

谢谢大家的答复。我尝试了preg_split('[-*]', $string)。它已经分割了明智的字符串字符。我已将其修改为preg_split('/[-*]/', $string)。运行良好。如果您能解释一下两者之间的差异,那将是很好的。

参考方案

您可以将preg_split用作:

$string = "-sev*yes-sev1*no-sev2*yes";
$array = preg_split('/-|\*/', $string,-1, PREG_SPLIT_NO_EMPTY);

要么

$array = preg_split('/-|\*/', $string);

或者,您也可以使用strtok

$tok = strtok($string, "-*");
$array = array();
while ($tok !== false) {
    $array[] = $tok;
    $tok = strtok("-*");
}

编辑:

 preg_split('[-*]', $string);

[ ]被当作定界符而不是char类,因此您使用正则表达式-*进行拆分,这意味着零个或多个连字符。

但在

preg_split('/[-*]/', $string);

您正在使用正则表达式[-*],它是与*-匹配的char类

PHP:将字符串拆分为字母和数字部分的最佳方法 - php

我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…

将大字符串分成多个小字符串-PHP - php

我从数据库中获取了一个长字符串,我需要对其进行解析,以使其不包含一个大字符串,而是多个,其中每个字符串都有2个字符。让我们以示例为例:我连接到表,获取此字符串:B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5,之后,我必须对字符串进行解析,因此:B1 C1 F4 G6 H4 I7 J1 J8 L5 O6 P2 Q1 R6 T5 U8 V1…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…