根据字符串或字母将字符串拆分为多个值?

Posted

技术标签:

【中文标题】根据字符串或字母将字符串拆分为多个值?【英文标题】:Splitting a string in multiple values based on string or alphabetic letters? 【发布时间】:2014-11-17 08:48:30 【问题描述】:

我希望我能解释我想要实现的目标: 在 php 中,我从远程网站接收内容,我想处理这些数据。 我现在有 +- 300 个这样的字符串:

$string=abcdefg123abcdefg    

我想把这个字符串分成三部分:

第一部分:第一个字母字符串 (abcdefg) 第二部分:数字字符串 (123) 第三部分:第二个字母字符串 (abcdefg)

我尝试了一些使用explode函数,但我只能将字符串分成两部分。

【问题讨论】:

尝试使用正则表达式... 高度相关的***.com/questions/18884192。只需使用第一个答案并将模式更改为/(\d+)/ 【参考方案1】:

您可以在一系列数字上使用 preg_split() 并捕获分隔符:

$parts = preg_split('/(\d+)/', 'abc123def', 2, PREG_SPLIT_DELIM_CAPTURE);
// $parts := ['abc', '123', 'def']

【讨论】:

【参考方案2】:
preg_match("/([a-zA-Z]*)([0-9]*)([a-zA-Z]*)/", $string, $output_array);
print_r($output_array)

【讨论】:

【参考方案3】:

这应该适合你:

(首先我得到字符串的数字来爆炸字符串!然后我将数字附加到数组中)

<?php

    $string = "abcdefg123abcdefg";

    preg_match('!\d+!', $string, $match);   
    $split = explode(implode("",$match), $string);
    $split[2] = $split[1];
    $split[1] = implode("",$match);

    print_r($split);

?>

输出:

Array
(
    [0] => abcdefg
    [1] => 123
    [2] => abcdefg
)

【讨论】:

【参考方案4】:

解决方案:

这将起作用:

$string = 'abcdefg123abcde';
preg_match_all('/([0-9]+|[a-zA-Z]+)/',$string,$matches);

print_r( $matches[0] );

输出:

Array ( [0] => abcdefg [1] => 123 [2] => abcde )

【讨论】:

以上是关于根据字符串或字母将字符串拆分为多个值?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 如何将一个字段里的值拆分为多个值显示出来

React typescript - 将数组拆分为字母组

拆分字符串值c#

将字符串拆分为多个原始类型

c ++在非字母字符上拆分字符串

在c ++中将单词拆分为字母? [关闭]