[http://]
- это класс символов, то есть любой один из этих символов из набора.
Просто оставьте эти квадратные скобки выключенными, если они должны начинатьсяс http://
.Если это необязательно, вы можете использовать (http://)?
.
Одна очевидная проблема заключается в том, что вы ищете последовательность ([a-zA-Z]+.)*\\.google
- это приведет к лоту возврата из-за этого голого.
, что означает «любой символ», а не буквальный период, который вы хотели.
Но даже если вы замените его на то, что вы имели в виду , ([a-zA-Z]+\\.)*\\.google
, у вас все еще есть проблема- для этого потребуется два .
символа непосредственно перед google
.Вместо этого вы должны попробовать:
String regex = "(http://)?([a-zA-Z]+\\.)*google\\.com/[-a-zA-Z/_.?&=]*";
, который немедленно возвращается для меня с совпадением true
.
Имейте в виду, что в настоящее время для этого требуется /
в конце google.com
,Если это проблема, то это мелкое исправление, но я оставил его там, поскольку оно было у вас в исходном регулярном выражении.