0

字符串解析

foo_and_bar_and_baz_or_doe

预期结果:foo、bar、baz 和 doe 以及 and、and 和 or。

我试过/(.*?)(_and_|_or_)/i了,但它跳过了最后一个。

实际上刺痛是

having_tag_slugs_and_having_category1_slug_and_having_category2_slug_or_having_category3_slug

输出,我正在寻找的是

having_tag_slugs
having_category1_slug
having_category2_slug
having_category3_slug

_and_
_and_
_or_
''
4

3 回答 3

1

您可以尝试以下正则表达式 -

/(.*?)(_and_|_or_|$)/im

希望有帮助。让我知道事情的后续 :)

于 2013-09-04T06:45:45.813 回答
1
$a="foo_and_bar_and_baz_or_doe";
$c=explode("_",$a);
print_r($c);
于 2013-09-04T06:42:32.587 回答
1

preg_split怎么样:

$str = 'having_tag_slugs_and_having_category1_slug_and_having_category2_slug_or_having_category3_slug';
$arr = preg_split('/(_and_|_or_)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($arr);

输出:

Array
(
    [0] => having_tag_slugs
    [1] => _and_
    [2] => having_category1_slug
    [3] => _and_
    [4] => having_category2_slug
    [5] => _or_
    [6] => having_category3_slug
)
于 2013-09-04T08:26:39.503 回答