Hej! Metoden "matches" försöker matcha hela strängen mot det reguljära uttrycket.Problem med regular expression
Enligt Suns regular expression-tutorial (http://java.sun.com/docs/books/tutorial/extra/regex/bounds.html) ska \b användas för att markera ett word boundary.
Exempel:
Current REGEX is: \bdog\b
Current INPUT is: The dog plays in the yard.
I found the text "dog" starting at index 4 and ending at index 7.
Dock så funkar inte följande kod:
Pattern p = Pattern.compile("\\bdog\\b");
Matcher m = p.matcher("The dog plays in the yard.");
System.out.println(m.matches());
Den visar false! Men \bdog\b ska ju träffa mot strängen som angavs ovan.
Någon som vet vad jag gör för fel?Sv: Problem med regular expression
Ditt uttryck "\\bdog\\b" matchar dock bara en delmängd av strängen, eftersom det som man i praktiken försöker matcha mot blir "^\\bdog\\b$".
Alltså: Utöka ditt uttryck så att hela strängen matchas t.ex. så här:
Pattern p = Pattern.compile(".*\\bdog\\b.*");
/ Tomas