我看到了一些关于这个问题的问题,但不幸的是我找不到我的解决方案。
下面是字符串
$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);