我有一个数据库,里面有很多我想拆分成数组的字符串。每个字符串都包含一个以字母(U,D,L,R表示向上,向下,向左,向右)开头的方向的列表,以及一个数字,指示该方向的距离。
这是一个字符串的示例。
“ U29R45U2L5D2L16”
这就是我需要的样子。
'U29','R45','U2','L5','D2','L16'
我以为我可以遍历字符串,但是我不知道如何判断数字的长度是一个还是多个空格。
答案 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
)
答案 1 :(得分:0)
正则表达式可以为您提供帮助:
<?php
$string = "U29R45U2L5D2L16";
preg_match_all("/[A-Z]\d+/", $string, $matches);
var_dump($matches);