java - 如何使用和在正则表达式中匹配此类字符串?

标签 java regex

如何在 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}

最佳答案

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

  • (?:...) 是非捕获组
  • [...] 是一个字符类,即其中的任何字符(- 除外,具体取决于位置)将被假定为字面意思(即 [iIl] 匹配 iL l,而 [( B)|(l3)] 不会做你想的那样:它匹配任何 (, B, )|l3)。
  • | 表示“或”并匹配整个序列
  • {...} 是一个数字量词(即 {2} 表示恰好两次)

您还可以在表达式的开头使用 (?i) 使其不区分大小写,即表达式将是 (?i)(?:b|[ li]3)[0o]{2}.

关于java - 如何使用和在正则表达式中匹配此类字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43200815/

相关文章:

regex - awk gsub 正则表达式,匹配单词不在双引号中

java - 如何在java中打开受密码保护的docx文件?

java - 致命异常/无法在 Android 中实例化错误

Java:从输入中获取匹配的字符串

html - 使用 Ruby 删除某些 HTML 标签

C# 正则表达式仅在标签外部替换字符串

java - 正则表达式避免最多代码 255 的字符

java - 当 ConcurrentHashMap 调整大小时,读取会如何发生?

java - 如何根据特定分隔符将字符串分成两部分

java - 使用 swing 创建滑出工具面板