在 php 中按掩码查找字符串

find string by mask in php

在数据库中我有一些字符串,例如:

1. BBD0G.ABAEBABGBAB-AAL----BA.LLRV--B--B--.H----A---
2. BBD0G.AAAEAAAGAAA-NAL----CA.LLRV--------.H----A---
3. BBD0G.AAABCBAGAAA-A--------.LLRV------A-.H--------

所有字符串的长度都相同。

如何根据如下掩码查找所有字符串:

*******B*****************B************A***********

应该不是基于值位置的规则,而是基于整个mask的通用规则

谢谢!

$template = "\*{7}B\*{17}B\*{12}A\*{11}";

$your_db_string = ...
$result = preg_match($template, $your_db_string);
// check $result...

尝试使用您的 sql 查询进行过滤。例如:

SELECT * FROM table_name WHERE column_name LIKE '_______B_________________B____________A___________';

通配符_正好一个字符。有关详细信息,请参阅:https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html