【发布时间】:2016-03-12 22:21:23
【问题描述】:
我需要从一个字符串中提取 2 个部分并将它们放入一个数组中。
$test = "add_image_1";
我需要确保此字符串以“add_image”开头并以“_1”结尾,但仅在最后存储数字部分。我想使用 preg_split 作为一种学习体验,因为我将来需要使用它。
我不知道如何使用这个函数来找到一个准确的单词(我尝试使用“\b”但失败了)所以我改用了“\w+”:
$result = preg_split("/(?=\w+)_(?=\d)/", $test);
print_r($result);
这很好用,除了它还接受一堆其他无效格式,例如: “add_image_1_2323”。我需要确保它只接受这种格式。最后一位的长度可以大于 1 位。
结果应该是:
Array (
[0] => add_image
[1] => 1
)
我怎样才能使它更安全?
【问题讨论】:
-
preg_split不是检查格式的工具。preg_match更适合这个任务,如果你想提取部分,使用捕获组。
标签: php regex preg-split