我已经看到了一些关于这个问题的问题,但不幸的是找不到我的解决方案。
我有以下字符串
$s = "ab2|5ac114|25ad"
我想得到以下结果。数组有三个成员
{"ab","ac","ad"}
答案 0 :(得分:1)
虽然您必须为自己搜索这样简单的代码而不是先询问,但您可以使用以下代码:
$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
添加到正则表达式模式,然后该模式将变为/[^a-zA-Z]/
。如果您确定$s
将始终只包含字母和数字,那么您也可以使用/[0-9]/
(请注意,这不包含^
,因此只考虑数字更换)。
答案 1 :(得分:0)
使用PHP的preg_match_all()
method,您可以轻松地按[a-z]
模式过滤掉小写字母字符。量词+
表示一个和无限之间的任何数字。但是,如果您一直在寻找2个小写字符,那么您可以使用更具体的量词替换它,例如{2}
,因此模式将为"/[a-z]{2}/"
<?php
$subject = 'ab2|5ac114|25ad';
preg_match_all("/[a-z]+/", $subject, $matches);
$result = $matches[0];
print_r($result);