正则表达式用于基于多个值的过滤

时间:2020-01-15 16:05:20

标签: regex

我想要一个Regex表达式,该表达式允许我定义多个应该完全匹配的值。

在这种情况下,我想匹配输入的确切值(不区分大小写),即:有声读物和有声读物。如果我的数据是下面的数据,则我的输出应该是2匹配的(因为有声读物有一个附加的)。我尝试过

(?:^|\W)audiobook(?:$|\W)|(?:^|\W)*?Audio book(?:$|\W) 

但由于我只得到返回的值之一,因此似乎无法提供正确的数据。

有声读物

有声读物

电子书

听书 有声读物

1 个答案:

答案 0 :(得分:0)

您可以使用单词边界\b来防止该单词成为较长单词的一部分,并可以使用可选部分来匹配可选空格和书后的可选s。

要使区分大小写不区分大小写,您可以在工具或语言中设置一个标志。

\bAudio(?: ?books?)?\b
  • \bAudio单词边界并与Audio匹配(或使用[aA]udio,不区分大小写)
  • (?:非捕获组
    • ?books?匹配一个空格,book和可选的s
  • )?关闭组并将其设置为可选
  • \b字边界

Regex demo with case insensitive flag

相关问题