В чем разница между "\\w+@\\w+[.]\\w+" и "^\\w+@\\w+[.]\\w+$"? Я пытался найти это в Google, но безуспешно.
Переведено автоматически
Ответ 1
^ означает "Соответствовать началу строки" (точнее, позиции перед первым символом в строке, поэтому оно не соответствует реальному символу).
$ означает "Соответствовать концу строки" (позиция после последнего символа в строке).
Оба называются якорями и гарантируют, что сопоставляется вся строка, а не только подстрока.
Итак, в вашем примере первое регулярное выражение сообщит о совпадении на email@address.com.uk, но совпадающий текст будет email@address.com, вероятно, не таким, как вы ожидали. Второе регулярное выражение просто завершится ошибкой.
Будьте осторожны, поскольку некоторые реализации регулярных выражений неявно привязывают регулярное выражение к началу / концу строки (например, Java .matches(), если вы используете это).
Если установлен параметр многострочности (например, с помощью (?m) флага или с помощью выполнения Pattern.compile("^\\w+@\\w+[.]\\w+$", Pattern.MULTILINE)), то ^ и $ также совпадают в начале и конце строки.