正規表現\w
は文字と正確に一致します[A-Za-z0-9_]
。これはまさに私が今必要としているものです。対応するグアバの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_]")
か?