[英]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.