我需要从字符串中提取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&#34 ;.我需要确保它只接受这种格式。最后一位数可以大于1位数。
结果应该是:
Array (
[0] => add_image
[1] => 1
)
如何让这更安全?
答案 0 :(得分:1)
正则表达式检查add_image
作为字符串的开头,并在数字前匹配_
。
正则表达式: (?<=add_image)_(?=\d+$)
<强>解释强>
(?<=add_image)
关注add_image
(?=\d+$)
查看字符串结尾的数字并与_
匹配。