我正在尝试创建一个消息传递系统,您可以在其中同时向单个或多个用户发送消息。 从我的表单中传递的值如下所示:
<Username One(1)><Username Two(2)><Username Three(3)>
现在,为了将消息发布到数据库,我想将这些信息分解并修剪成三个独立的部分。所有这些都在一个数组中。
我希望输出是这样的:
Array[0] = 1
Array[1] = 2
Array[2] = 3
我试过使用 explode(">", $input_value);
然后使用 preg_match
进行修剪。
但是,我最终得到了两个单独的数组。我怎样才能将这两者结合起来并得到我想要的结果?我需要它尽可能有效,因为每个用户都应该能够同时向最大数量的用户发送消息。
另外,我希望能对正则表达式进行易于理解的解释,因为我觉得它有点令人困惑。
最佳答案
您可以使用:
$s = '<Username One(1)><Username Two(2)><Username Three(3)>';
preg_match_all('~\b[\p{L}\p{N}]+(?=\h*\)>)~u', $s, $m);
print_r($m[0]);
Array
(
[0] => 1
[1] => 2
[2] => 3
)
(?=\h*\)>)
是匹配 )>
关于php - 有效地分解和修剪长字符串,从而产生单个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752599/