当前位置:  开发笔记 > 编程语言 > 正文

使用preg_split分割和弦和单词

如何解决《使用preg_split分割和弦和单词》经验,为你挑选了0个好方法。

我正在处理一小段处理歌曲标签的代码,但我遇到了问题.

我需要解析每个歌曲标签行并将其拆分以一方面获得大量的和弦,另一方面提供单词.

每个块都会像:

$line_chunk = array(
    0 => //part of line containing one or several chords
    1 => //part of line containing words
);

他们应该保持"分组".我的意思是,只有当函数达到和弦和单词之间的"限制"时它才会分裂.

我想我应该使用preg_split来实现这一点.我做了一些测试,但我只能分享和弦,而不是和弦的"组":

$line_chunks = preg_split('/(\[[^]]*\])/', $line, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

这些例子向您展示了我想要的内容:

在不含和弦的行上:

$input = '{intro}';

$results = array(
    array(
        0 => null,
        1 => '{intro}
    )
);

在仅包含和弦的行上:

$input = '[C#] [Fm] [C#] [Fm] [C#] [Fm]';

$results = array(
    array(
        0 => '[C#] [Fm] [C#] [Fm] [C#] [Fm]',
        1 => null
    )
);

在包含两者的一行上:

$input = '[C#]I’m looking for [Fm]you [G#]';

$results = array(
    array(
        0 => '[C#]',
        1 => 'I’m looking for'
    ),
    array(
        0 => '[Fm]',
        1 => 'you '
    ),
    array(
        0 => '[G#]',
        1 => null
    ),
);

有关如何做到这一点的任何想法?

谢谢 !

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有