在php中按数字和字符分割字符串


Split string by number and character in php

我看到了一些关于这个问题的问题,但不幸的是我找不到我的解决方案。

下面是字符串

$s = "ab2|5ac114|25ad"

我想得到下面的结果。数组有三个成员

{"ab","ac","ad"}

见过链接1链接3

虽然您必须自己搜索这些简单的代码,而不是首先询问,但您可以使用以下代码:

$s = "ab2|5ac114|25ad";
$s = explode('|', $s);
for($i=0; $i<count($s); $i++)
{
    $s[$i] = preg_replace('/[^a-z]/', '', $s[$i]);
}

这里preg_replace()使用正则表达式将不属于a-z的所有字符替换为零,即。它只是去除它们。^表示不属于。如果您不想删除大写字符,那么只需将A-Z添加到regex模式中,然后将其变为/[^a-zA-Z]/。如果您确定$s将始终只包含字母和数字,那么您也可以使用/[0-9]/(注意,这不包含^,因此只有数字被考虑替换)。

使用PHP的preg_match_all()方法,您可以轻松地通过[a-z]模式过滤出小写字母。量词+是指 1 无限之间的任意数。但是如果你总是在寻找两个小写字符,那么你可以用更具体的量词来代替它,比如{2}所以模式将是"/[a-z]{2}/"

<?php
$subject = 'ab2|5ac114|25ad';
preg_match_all("/[a-z]+/", $subject, $matches);
$result = $matches[0];
print_r($result);