【问题标题】:Regular expression for exposed filter in a view [Drupal 8]视图中暴露过滤器的正则表达式 [Drupal 8]
【发布时间】:2020-09-03 05:28:44
【问题描述】:

我正在尝试使用正则表达式过滤掉 Drupal 8 视图 [Exposed Filter] 中的结果。我需要的是在特定字段的最后 4 或 5 位数字/字母中搜索关键字。

例如:

  • 2006ABC00022
  • 2014DEF03120
  • 2019GHI03128
  • 2019GHI07437

这些是我需要过滤的数据。如果有人试图搜索"0022",我想将结果显示为2006ABC00022。因为最后 4 位是 0022。我们可以使用Ends with 运算符来做到这一点。但我想要一些不同的东西,因为如果有人试图用"312" 过滤结果,我想将结果显示为2014DEF031202019GHI03128。因为这 2 个字符串以 312 作为最后 4 位数字的开头。如果我使用 'Ends with' 运算符,这种情况将不起作用。所以我选择了一个正则表达式。

"[0- 9]{4}$"

我尝试将正则表达式与上述表达式一起使用。我意识到这并没有像我预期的那样工作。这个正在搜索整个字符串。 如果我搜索 2019 它会显示最后 2 个结果。但它应该是空的。

我只想在最后 4 位上搜索关键字。如果关键字是 5 位,则搜索最后 5 位。

【问题讨论】:

    标签: php regex drupal drupal-8 drupal-views


    【解决方案1】:

    这里的有效匹配似乎是一个以四位数年份开头的关键字,后跟三个字母,然后是 5 位数字。这意味着以下模式:

    \b\d{4}[A-Z]{3}\d{5}\b
    

    具体来说,如果您想查找以0022 结尾的匹配项,请修改上述模式并使用:

    \b\d{4}[A-Z]{3}\d0022\b
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      相关资源
      最近更新 更多