如何用正则表达式将字符串按关键词拆分成数组?
字符串按关键词拆分
在处理字符串时,有时我们需要按特定的关键词将它拆分为一个数组。例如,给定一个字符串和一组关键词,任务是将字符串按这些关键词拆分为一个数组。
问题:
假设我们有以下字符串:
你关注的杨幂有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] => 个未看)