如何在PHP中根据字母和数字拆分字符串

时间:2019-02-11 20:35:55

标签: php

我有一个数据库,里面有很多我想拆分成数组的字符串。每个字符串都包含一个以字母(U,D,L,R表示向上,向下,向左,向右)开头的方向的列表,以及一个数字,指示该方向的距离。

这是一个字符串的示例。

“ U29R45U2L5D2L16”

这就是我需要的样子。

'U29','R45','U2','L5','D2','L16'

我以为我可以遍历字符串,但是我不知道如何判断数字的长度是一个还是多个空格。

2 个答案:

答案 0 :(得分:2)

您可以使用preg_split来分解字符串,在看起来像U,L,D或R的东西上分割数字,然后使用PREG_SPLIT_DELIM_CAPTURE来保留分割的文本:

$string = "U29R45U2L5D2L16";
print_r(preg_split('/([UDLR]\d+)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));

输出:

Array (
    [0] => U29
    [1] => R45
    [2] => U2
    [3] => L5
    [4] => D2
    [5] => L16 
)

Demo on 3v4l.org

答案 1 :(得分:0)

正则表达式可以为您提供帮助:

<?php
$string = "U29R45U2L5D2L16";
preg_match_all("/[A-Z]\d+/", $string, $matches);

var_dump($matches);
相关问题