如何在正则表达式中使用和匹配这种字符串?

时间:2017-04-04 07:25:46

标签: java regex

如何在正则表达式中一起制作orand

我们可以在正则表达式(Boo)|(l30o)中执行此操作,并列出所有基本上与使用正则表达式相关的排列。在这里或正在使用。

我希望以任何形式B以任何形式匹配O两次。像[(B)|(l3)][0 o O]{2}这样的东西。但是,在这种形式下,它也匹配(0O

O两次匹配不是问题。

B尝试匹配多个字符匹配时,单个字符匹配就会出现问题。

应匹配: 嘘 b0o L300 I3oO B00

所有看起来像Boo的单词,即b - {B,b,l3,I3,i3}o - {O, o, 0};

3 个答案:

答案 0 :(得分:3)

您可以尝试(?:[bB]|[lIi]3)[0Oo]{2}

  • (?:...)是一个非捕获组
  • [...]是一个字符类,即其中的任何字符(-除外,取决于位置)将被假定为字面意思(即[iIl]匹配iL l,而[(B)|(l3)]不会按照您的想法执行操作:它匹配任何(,{{ 1}},B)|l)。
  • 3表示"或"并匹配整个序列
  • |是一个数字量词(即{...}意味着两次)

您还可以在表达式的开头使用{2}使其不区分大小写,即表达式为(?i)

答案 1 :(得分:2)

您可以尝试以下

(B|b|l3|I3|i3)[0oO]{2}

您可以在https://regex101.com/r/gLA6N2/3

在线试用

答案 2 :(得分:1)

(B|b|l3|I3|i3)(O|o|0)+

()是一个小组

|是一个或

+是{1,}的量词,表示1或更多