if we are saying .matches() tries to match entire input string then why following returns false?
String input = "HOLIDAY"; String pattern = "H*I*Y";
input.matches(pattern) --> returns false;
Note: I have already looked at Regex doesn't work in String.matches()
CodePudding user response:
Regex is not globbing!
Your regex "H*I*Y" does not mean "H then anything then I then anything then Y"; it means "any number of H (including none) followed by any number of I (including none) followed by a Y".
The regex equivalent of globbing's * is .*: the dot means "any character" an * means "any number of (including none)".
Try:
String pattern = "H.*I.*Y";
