php - 有效地分解和修剪长字符串,从而产生单个数组

标签 php arrays regex explode

我正在尝试创建一个消息传递系统,您可以在其中同时向单个或多个用户发送消息。 从我的表单中传递的值如下所示:

<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/

相关文章:

PHP 6 - 路线图?

javascript - 服务器端事件 - 如何将参数传递给服务器端脚本?附加查询字符串?

PHP 验证 HTTP 消息

javascript - JS/ES6 : Check if every array element has a child in another array

php - 当 XML SOAP 响应中存在单个元素时,JSON 对象而不是数组

regex - 如何使用sed匹配并保留一行中的第一个数字?

PHP - 超薄框架 : Best practice with a lot of code inside routes closures

c++ - 动态数组大小并在 getline() 处崩溃;

regex - 带双引号的 Logstash Grok 模式

c# - 正则表达式在斜线之间得到一个词