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

2019-05-12 04:28发布

这正则表达式引擎在Java使用?

在像使用RegexBuddy如果我使用的工具

[a-z&&[^bc]]

在Java中的表达是好的,但在使用RegexBuddy尚未清楚。

事实上,它的报道:

匹配单个字符存在于下面的列表[az&&[^bc]

  • 之间的范围内的字符azaz
  • 人物之一&[^bc&&[^bc
  • 匹配字符]字面意思: ]

但我想匹配的字符之间az与字符不相交bc

Answer 1:

最喜欢的正则表达式的口味, java.util.regex.Pattern有语法,可能无法与其他人完全兼容它自己特定的功能; 这包括字符类集,交集和减法:

  • [ad[mp]] a通过d ,或m通过p[a-dm-p] 联合)
  • [az&&[def]] de ,或f (交集)
  • [az&&[^bc]] a通过z ,除了bc[ad-z] 减法)

Java的正则表达式的最重要的“警告”是matches的尝试来匹配整个字符串的模式。 这是非典型的多数引擎,可有时混乱的根源。

也可以看看

  • regular-expressions.info/Flavor比较和Java的风味

在字符类减法

减法允许您定义,例如在Java中“所有的声母”为[az&&[^aeiou]]

这个语法是特定于Java。 在XML架构,.NET,JGSoft和使用RegexBuddy,它的[az-[aeiou]] 其他口味可能无法在所有支持此功能。

参考

  • 在XML正则表达式regular-expressions.info/Character类
  • MSDN -正则表达式字符类-减法

相关问题

  • 什么是Java的正则表达式后面的字符类交叉点?


Answer 2:

Java使用自己的正则表达式引擎,其行为是在定义模式类。

你可以用一个测试Eclipse插件或在线 。



Answer 3:

使用RegexBuddy还不支持字符类集,交集和减法语法是唯一的Java正则表达式的味道。 这是使用RegexBuddy还不支持Java正则表达式语法的一部分。 我们计划在使用RegexBuddy的未来版本来实现这一点。 这已被推迟的原因是因为没有其他的正则表达式的味道支持此语法。

PS:如果你特别有关于使用RegexBuddy问题,请在“使用RegexBuddy”标签添加到您的问题。 那么问题在我的RSS阅读器会自动显示。 我不遵循“正则表达式”的标签,因为有太多的问题,使用该标记,而且大多数是由我看到他们的时候已经回答了。



文章来源: Character class subtraction, converting from Java syntax to RegexBuddy