簡體   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