正则表达式\w
与 characters 完全匹配[A-Za-z0-9_]
,这正是我现在需要的。我想知道是否有任何简单的方法可以创建相应的 Guava 的CharMatcher。我做了以下事情(我不喜欢静态导入):
private final static CharMatcher IDENTIFIER_CHAR = CharMatcher.is('_')
.or(CharMatcher.inRange('A', 'Z'))
.or(CharMatcher.inRange('a', 'z'))
.or(CharMatcher.inRange('0', '9'))
.precomputed();
有一些预定义的匹配器,但是像
private final static CharMatcher IDENTIFIER_CHAR = CharMatcher.ASCII
.and(CharMatcher.JAVA_LETTER_OR_DIGIT)
.or(CharMatcher.is('_'))
.precomputed();
看起来没有任何好转。在 Java 8 中使用闭包forPredicate
之前也不会使用。这里没有真正的问题,对于简单且(我猜)常见的事情来说,它太冗长了。
有更好的解决方案吗?也许有人实施过类似的东西newRegexLikeCharMatcher("[A-Za-z0-9_]")
吗?