这正则表达式引擎在Java使用?
在像使用RegexBuddy如果我使用的工具
[a-z&&[^bc]]
在Java中的表达是好的,但在使用RegexBuddy尚未清楚。
事实上,它的报道:
匹配单个字符存在于下面的列表
[az&&[^bc]
- 之间的范围内的字符
a
和z
:az
- 人物之一
&[^bc
:&&[^bc
- 匹配字符
]
字面意思:]
但我想匹配的字符之间a
和z
与字符不相交b
或c
这正则表达式引擎在Java使用?
在像使用RegexBuddy如果我使用的工具
[a-z&&[^bc]]
在Java中的表达是好的,但在使用RegexBuddy尚未清楚。
事实上,它的报道:
匹配单个字符存在于下面的列表
[az&&[^bc]
- 之间的范围内的字符
a
和z
:az
- 人物之一
&[^bc
:&&[^bc
- 匹配字符
]
字面意思:]
但我想匹配的字符之间a
和z
与字符不相交b
或c
最喜欢的正则表达式的口味, java.util.regex.Pattern
有语法,可能无法与其他人完全兼容它自己特定的功能; 这包括字符类集,交集和减法:
[ad[mp]]
a
通过d
,或m
通过p
:[a-dm-p]
联合)[az&&[def]]
d
,e
,或f
(交集)[az&&[^bc]]
a
通过z
,除了b
和c
:[ad-z]
减法)
Java的正则表达式的最重要的“警告”是matches
的尝试来匹配整个字符串的模式。 这是非典型的多数引擎,可有时混乱的根源。
减法允许您定义,例如在Java中“所有的声母”为[az&&[^aeiou]]
这个语法是特定于Java。 在XML架构,.NET,JGSoft和使用RegexBuddy,它的[az-[aeiou]]
其他口味可能无法在所有支持此功能。
Java使用自己的正则表达式引擎,其行为是在定义模式类。
你可以用一个测试Eclipse插件或在线 。
使用RegexBuddy还不支持字符类集,交集和减法语法是唯一的Java正则表达式的味道。 这是使用RegexBuddy还不支持Java正则表达式语法的一部分。 我们计划在使用RegexBuddy的未来版本来实现这一点。 这已被推迟的原因是因为没有其他的正则表达式的味道支持此语法。
PS:如果你特别有关于使用RegexBuddy问题,请在“使用RegexBuddy”标签添加到您的问题。 那么问题在我的RSS阅读器会自动显示。 我不遵循“正则表达式”的标签,因为有太多的问题,使用该标记,而且大多数是由我看到他们的时候已经回答了。