我正在寻找一种增量应用正则表达式模式的方法,即我正在寻找一个匹配器,我可以在输入字符时对其进行更新,并在每个字符上告诉我它是否仍然匹配。
这是代码中的一个插图(这MagicMatcherIAmLookingFor
是我正在寻找的characterSource
东西,是我可以查询新字符的东西InputStreamReader
,就此说一个):
final Pattern pattern = Pattern.compile("[0-9]+");
final MagicMatcherIAmLookingFor incrementalMatcher = pattern.magic();
final StringBuilder stringBuilder = new StringBuilder();
char character;
while (characterSource.isNotEOF()) {
character = characterSource.getNextCharacter();
incrementalMatcher.add(character);
if (incrementalMatcher.matches()) {
stringBuilder.append(character);
} else {
return result(
stringBuilder.toString(),
remaining(character, characterSource)
);
}
}
我没有找到java.util.regex.Pattern
像那样利用现有的方法,但也许我只是没有找到它。或者是否有提供此类功能的内置正则表达式的替代库?
我没有任何运气在网上搜索它 - 所有结果都完全淹没了如何首先使用 java 正则表达式。
我的目标是 Java 8+