I\'m parsing out text from a file and trying to look at the times. I first need to check if there are times in the text. The only consistent pattern in the text is that all time
matches
checks if entire string is matched by used regex and since only part of this regex can be matched you are getting false
as result.
Way around would be adding .*
at start and end of your regex to let it match parts before or after matched substring.
textWithTime.matches(".*\\d\\d?:\\d\\d.*");
but this solution would have to iterate over all characters of strings to evaluate it.
Better approach would be using find()
method from Matcher
class which will stop iterating after first match (or will return false
in case when no match of regex could be found).
Pattern p = Pattern.compile("\\d\\d?:\\d\\d");
Matcher m = p.matcher(textWithTime);
if (m.find()){
System.out.println("MATCH");
} else {
System.out.println("NO MATCH");
}