繁体   English   中英

正则表达式的部分匹配

[英]Partial matching of Regular expression

我有一个逐步构建的字符串。 在构建字符串时,它通过正则表达式作为整体进行匹配,并且当找到匹配时,执行某个任务。

我的要求是:如果在字符串构建过程的中间发现无法找到完全匹配,则应重置字符串并重新启动构建过程。

例如,如果正则表达式是"mada12gaskar"并且将char "3"添加到现有字符串"mada1" ,应该清除该字符串,并且构建过程应该重新开始,因为"mada13"将永远不会与"mada12gaskar"匹配。 这可以通过Java regex API实现吗?

我想我找到了解决问题的方法。

看看Matcher#hitEnd()方法:

如果在此匹配器执行的最后一个匹配操作中搜索引擎命中了输入的结尾,则返回true。

当此方法返回true时,更多输入可能会更改上次搜索的结果。

现在,只需使用Matcher (通过Pattern实例获得)将regexp与尚未完全构造的String Matcher然后查看结果:

  • 如果它匹配,你有你的赢家
  • 如果它不匹配,请查看hitEnd()
    • 如果确实true ,请构建更多String并重试
    • 如果它是false ,那么当前的String永远不会匹配,你可以放弃它并重新开始

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM