You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中将带序号的字符串转换为数组的问题求助

解决方案:提取编号项为数组

针对你的需求,有两种常用的PHP正则处理方式:

方法一:使用preg_match_all捕获目标内容

通过正则匹配每个编号后的文本内容,直接提取所需部分:

$str = "1. List of word synonyms 2) Glass plastic products 3. Other product";
// 匹配数字+(.或)),捕获后续直到下一个编号或结尾的内容
preg_match_all('/\d+[.)]\s*(.*?)(?=\s*\d+[.)]|$)/s', $str, $matches);
$result = $matches[1];
print_r($result);

正则说明:

  • \d+:匹配一个或多个数字
  • [.)]:匹配.或)两种编号后缀
  • \s*:匹配编号后的零个或多个空格
  • (.*?):非贪婪捕获目标文本,避免过度匹配
  • (?=\s*\d+[.)]|$):正向预查,确保捕获到下一个编号或字符串结尾为止
  • s修饰符:让.匹配换行符(兼容含换行的场景)

方法二:使用preg_split分割字符串

以编号作为分隔符分割原字符串,过滤空元素后得到结果:

$str = "1. List of word synonyms 2) Glass plastic products 3. Other product";
// 以数字+(.或))(前后可带空格)作为分隔符分割
$parts = preg_split('/\s*\d+[.)]\s*/', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($parts);

参数说明:

  • -1:保留所有分割后的元素
  • PREG_SPLIT_NO_EMPTY:过滤分割产生的空字符串(比如原字符串开头的编号前无内容,会生成空元素)

两种方法运行后都会输出你需要的数组:

Array(
  [0] => List of word synonyms
  [1] => Glass plastic products
  [2] => Other product
)

内容的提问来源于stack exchange,提问作者Krystian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:22:41