PHP前端开发

如何用正则表达式将字符串按关键词拆分成数组?

百变鹏仔 3天前 #PHP
文章标签 成数

字符串按关键词拆分

在处理字符串时,有时我们需要按特定的关键词将它拆分为一个数组。例如,给定一个字符串和一组关键词,任务是将字符串按这些关键词拆分为一个数组。

问题:

假设我们有以下字符串:

你关注的杨幂有10个未看

以及以下关键词:

["杨幂", 10]

求将字符串拆分为以下数组:

["你关注的", "杨幂", "有", 10, "个未看"]

解决方案:

我们可以使用正则表达式来解决这个问题。正则表达式提供了强大而灵活的模式匹配功能。在本例中,我们可以使用以下正则表达式:

/(杨幂|10)/

这个正则表达式将匹配字符串中出现的 "杨幂" 或 "10"。我们使用 preg_split() 函数,它将字符串按给定的分隔符拆分成一个数组。我们使用 preg_split_delim_capture 标志来确保分隔符也包含在结果数组中。

以下 php 代码演示了如何实现:

$str = "你关注的杨幂有10个未看";print_r (preg_split("/(杨幂|10)/", $str, -1, preg_split_delim_capture));

输出:

Array(    [0] => 你关注的    [1] => 杨幂    [2] => 有    [3] => 10    [4] => 个未看)