【问题标题】:find string by mask in php在php中通过掩码查找字符串
【发布时间】:2016-07-03 09:47:01
【问题描述】:

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

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***********

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

谢谢!

【问题讨论】:

  • 你试过什么代码?
  • 我不知道如何尝试使其与 substr 和每个数字的位置分开...但这不是一个聪明的解决方案...也许用户会选择基于 30 进行过滤字符...我需要的是一个函数来获取整个掩码并检查哪些字符串是对应的。
  • 例如,我使用的那个掩码应该只返回字符串 3。

标签: php masking


【解决方案1】:

尝试使用您的 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

【讨论】:

    【解决方案2】:
    $template = "\*{7}B\*{17}B\*{12}A\*{11}";
    
    $your_db_string = ...
    $result = preg_match($template, $your_db_string);
    // check $result...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 2020-06-07
      • 2018-07-13
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多