2010-08-10 5 views
3

Может кто-нибудь объяснить, что соответствует следующему регулярному выражению?

^.*$ 

Спасибо!

+1

Похоже, что это хорошо описано в http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html. Что случилось с официальной документацией? –

ответ

21

Либо вся строка или вся линия, в зависимости от того, используется multiline mode.

0

Похоже, это соответствует всем ...

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – Ankur

+0

@ Ankur: не согласен. Он непосредственно * отвечает на вопрос, хотя и с небольшим объяснением. Это также, строго говоря, не совсем правильно, но это тоже не означает, что это не ответ. – Mac

15

все.

^ is the beginning of the string. 
. is any character. 
* means 0 or more of said characters. 
$ is the end of the string. 

Так что это регулярное выражение соответствует 0 или более символам, которые начинаются и заканчиваются строкой (это все).

+0

Благодарим вас за объяснение – user73829

+0

+1 для простого простого объяснения – 2010-08-10 14:26:40

+3

По умолчанию большинство реализаций регулярных выражений не будут соответствовать '\ r' и' \ n' для метаданных DOT. Итак, не «все». –

1

Это будет соответствовать чему угодно.

^ означает начало линии. $ обозначает конец строки. Таким образом, это означает, что выражение должно соответствовать всей переданной строке.

. будет соответствовать любому персонажу. * означает, что предмет до него может отображаться от 0 до любого количества раз. Таким образом, это означает, что строка может содержать любое количество символов, включая 0.

2

Он соответствует всем пустым и непустым строкам. Она может быть разбита на следующие части:

^ : match the beginning of the line 
. : match any character except newline 
* : match zero or many instances of the match 
$ : match the ending of the line 
1

^ = начало строки или строки (в зависимости от настроек).

. = Любой символ.

* = Любое число предыдущего символа. В этом случае ..

$ = Конец строки или строки (зависит от настроек).

Поместите их вместе, и он может соответствовать целой строке или одной целой строке в зависимости от того, что такое многострочные настройки (см. this для получения дополнительной информации).

0

Похоже, что это соответствует всем, включая пустые строки. *. * Означает, что он соответствует всем (период) 0 или более раз (*). Элементы^и $ избыточны, если вы установили флаг multline (не уверен, что это такое в java).

Смежные вопросы