加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 按组拆分字符串[ALPHA] [DIGIT] [ALPHA]

发布时间:2020-12-13 17:08:43 所属栏目:PHP教程 来源:网络整理
导读:我试图剥离按类型分组的字符串(仅ALPHA或DIGIT),没有任何其他字符. 我正在使用PHP,并希望使用REGEX. 我需要将像“ES-3810 / 24MX”这样的输入字符串转换为类似[ES] [3810] [24] [MX]的数组, 和类似“CISCO1538M”的输入字符串到[CISCO] [1538] [M]这样的数组
我试图剥离按类型分组的字符串(仅ALPHA或DIGIT),没有任何其他字符.

我正在使用PHP,并希望使用REGEX.

我需要将像“ES-3810 / 24MX”这样的输入字符串转换为类似[ES] [3810] [24] [MX]的数组,
和类似“CISCO1538M”的输入字符串到[CISCO] [1538] [M]这样的数组.

输入文件序列可以是无差别的DIGITS或ALPHA.

分隔符可以是非ALPHA和非DIGIT字符,以及DIGIT序列与APLHA序列之间的变化,反之亦然.

抱歉,我的英语很差……希望我的解释看起来很清楚.

谢谢你的大力帮助.

最好的祝福.

解决方法

匹配正则表达式的所有出现的命令是preg_match_all(),它输出多维结果数组.正则表达式非常简单…任何数字([0-9])一次或多次()或(|)任何字母([A-z])一次或多次().注意大写字母A和小写字母z包括所有大写和小写字母.

为方便起见,textarea和php标签包含在内,因此您可以放入php文件并查看结果.

<textarea style="width:400px; height:400px;">
<?php

foreach( array(
        "ES-3810/24MX","CISCO1538M","123ABC-ThatsHowEasy"
    ) as $string ){

    // get all matches into an array
    preg_match_all("/[0-9]+|[[:upper:][:lower:]]+/",$string,$matches);

    // it is the 0th match that you are interested in...
    print_r( $matches[0] );

}

?>
</textarea>

textarea中的哪些输出:

Array
(
    [0] => ES
    [1] => 3810
    [2] => 24
    [3] => MX
)
Array
(
    [0] => CISCO
    [1] => 1538
    [2] => M
)
Array
(
    [0] => 123
    [1] => ABC
    [2] => ThatsHowEasy
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读