PHP正则表达式使用preg_split

时间:2016-03-12 22:21:23

标签: php regex preg-split

我需要从字符串中提取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 

)

如何让这更安全?

1 个答案:

答案 0 :(得分:1)

正则表达式检查add_image作为字符串的开头,并在数字前匹配_

正则表达式: (?<=add_image)_(?=\d+$)

<强>解释

  • (?<=add_image)关注add_image

  • (?=\d+$)查看字符串结尾的数字并与_匹配。

Regex101 Demo