本文介绍如何使用 php 的 `preg_grep()` 配合正则表达式,精准筛选出**至少包含两个相同字母(非连续亦可)**的字符串,例如 "asds"(s 出现两次)、"dfaa"(a 出现两次),而非仅匹配特定字符(如仅 'a')或要求连续重复。
要实现“匹配任意

✅ 正确示例代码如下:
$input_lines = ["asdf", "fdas", "asds", "d fm", "dfaa", "aaaa", "aabb", "aaabb"];
$result = preg_grep('/(\p{L}).*\1/', $input_lines);
print_r($result);输出结果为:
Array
(
[2] => asds // s 出现在第1位和第3位
[4] => dfaa // a 出现在第3位和第4位
[5] => aaaa // a 多次出现
[6] => aabb // a 出现在第0、1位;b 出现在第2、3位(任一字母满足即可)
[7] => aaabb // 同上,a 或 b 均满足条件
)⚠️ 注意事项:
? 总结:解决“任意字符重复出现”类问题,核心是「捕获 + 通配 + 反向引用」三步逻辑。避免硬编码具体字符(如 /a{2}/),改用 \p{L} 提升健壮性,并始终验证输入数据结构(如确认已是数组而非需 explode 的字符串)。