簡體   English   中英

驗證正則表達式是否匹配

[英]Verifying that a Regular Expression Matches

我有一個正則表達式,根據我所知道的和RegexPal所說的,與我正在測試的完整字符串(僅最右邊的部分)不匹配。 但是, matcher.matches()返回true!

那么,確定java.util.regex Matcher是否實際上完全匹配字符串的最可靠方法是什么?

另外,假設想要使用matcher.find(),如下所示:

if (a match was found)
{
    while (matcher.find())
    {
        // Do whatever
    }
]

有沒有辦法實現“匹配被發現”條件檢查?

不要使用find ,使用matches

好吧,我從來沒有matches()不起作用,但你可以使用find() ,然后使用

 matcher.start()==0&&matcher.end()==string.length() 

我不認為你需要if,因為while(matcher.find())應該檢查,但如果你這樣做...

if(matcher.find()){
    do{
        //whatever
    } while(matcher.find());
}

matches()返回true意味着有一些匹配。 是否是“完整”字符串,只取決於你的正則表達式是什么。 例如

"a"

將匹配以下所有

"a"
"abb"
"bab"
"bba"

如果你想匹配完整的字符串,你的正則表達式必須以^開頭並以$ Eg結尾

"^a$"

將匹配"a" ,但不符合以下條件

"abb"
"bab"
"bba"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM