我有一个逐步构建的String。在构建字符串时,它通过正则表达式整体匹配,当找到匹配项时,执行某个任务。
我的要求是:如果在字符串构建过程的中间发现无法找到完全匹配,则应重置字符串并重新启动构建过程。
例如,如果正则表达式为"mada12gaskar"
,并且将char "3"
添加到现有字符串"mada1"
,则应清除该字符串,并且构建过程应重新开始{ {1}}永远不会与"mada13"
匹配。这可以通过Java regex API吗?
答案 0 :(得分:6)
我想我找到了解决问题的可能方法。
查看Matcher#hitEnd()
方法:
如果输入的结尾被搜索引擎命中,则返回true 该匹配器执行的最后一次匹配操作。
当此方法返回true时,则可能有更多输入 会改变上次搜索的结果。
现在,只需使用Matcher
(可通过Pattern
实例获得)将regexp与尚未完全构造的String匹配,然后查看结果:
hitEnd()
:
true
,请构建更多字符串并再试一次false
,则当前的字符串永远不会匹配,您可以删除它并重新开始