2026-02-09 18:20:02
要将字符串根据关键词拆分成数组,可以使用正则表达式配合编程语言中的字符串分割函数来实现。以下是具体方法和示例:
方法说明输出结果:
Array( [0] => 你关注的 [1] => 杨幂 [2] => 有 [3] => 10 [4] => 个未看)分步解析构建正则表达式:
将关键词数组["杨幂", "10"]通过implode("|", $keywords)转换为(杨幂|10)。
完整模式为/(杨幂|10)/,表示匹配“杨幂”或“10”。
执行分割:
preg_split函数参数说明:
第一个参数:正则表达式模式。
第二个参数:待分割字符串。
第三个参数-1:表示无限制分割次数。
第四个参数PREG_SPLIT_DELIM_CAPTURE:保留分隔符(即关键词)到结果数组中。
结果处理:
分割后数组按顺序包含:非关键词部分、关键词1、非关键词部分、关键词2……
JavaScript:
const str = "你关注的杨幂有10个未看";const keywords = ["杨幂", "10"];const pattern = new RegExp(`(${keywords.join("|")})`);const result = str.split(pattern).filter(Boolean);// 需手动处理空元素或调整正则以精确匹配(注:JS的split无法直接保留分隔符,需结合match或更复杂的正则处理。)
Python:
import restr = "你关注的杨幂有10个未看"keywords = ["杨幂", "10"]pattern = f"({'|'.join(keywords)})"result = re.split(f"({pattern})", str)# 过滤空字符串并重组filtered_result = [x for x in result if x]通过正则表达式实现字符串按关键词拆分的关键是:
PHP的preg_split配合PREG_SPLIT_DELIM_CAPTURE是最直接的实现方式,其他语言需结合正则库特性调整。