字符类减法,从Java语法转换为RegexBuddy

xde*_*000 12 java regex regexbuddy character-class

Java使用哪个正则表达式引擎?

在像RegexBuddy这样的工具中使用

[a-z&&[^bc]]
Run Code Online (Sandbox Code Playgroud)

Java中的表达式很好,但在RegexBuddy中它还没有被理解.

事实上,它报道:

匹配下面列表中的单个字符 [a-z&&[^bc]

  • 范围在a和之间的字符z:a-z
  • 其中一个人物&[^bc:&&[^bc
  • ]字面匹配字符:]

但我想匹配一个字符,az与一个不是b或的字符相交c

pol*_*nts 19

像大多数正则表达式一样,java.util.regex.Pattern它有自己的特定功能,语法可能与其他语法不完全兼容; 这包括字符类联合,交集和减法:

  • [a-d[m-p]]:a通过dm通过p:( [a-dm-p] 联盟)
  • [a-z&&[def]]:d,ef (十字路口)
  • [a-z&&[^bc]]:a通过z,除了bc:( [ad-z] 减法)

Java正则表达式最重要的"警告"是matches尝试将模式与整个字符串进行匹配.这对大多数引擎来说都是非典型的,有时会引起混淆.

也可以看看


关于字符类减法

减法允许您在Java中定义例如"所有辅音" [a-z&&[^aeiou]].

此语法特定于Java.在XML Schema,.NET,JGSoft和RegexBuddy中,它是[a-z-[aeiou]].其他口味可能根本不支持此功能.

参考

相关问题