Вопрос-ответ

What do ^ and $ mean in a regular expression?

Что означают ^ и $ в регулярном выражении?

В чем разница между "\\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)), то ^ и $ также совпадают в начале и конце строки.

Ответ 2

Попробуйте Javadoc:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

^ и $ соответствуют началу / окончанию строки (не используя их)

java regex