2010-08-10 4 views
3

Quelqu'un peut-il expliquer ce que l'expression rationnelle suivante correspond?

^.*$ 

Merci!

+1

Il semble que ce soit bien couvert dans http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html. Quel était le problème avec la documentation officielle? –

Répondre

0

On dirait que cela correspond à tout ...

+0

Ceci ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. – Ankur

+0

@Ankur: pas d'accord. Il répond * directement * à la question, mais avec peu d'explications. C'est aussi, à proprement parler, pas tout à fait correct, mais cela ne veut pas dire non plus que ce n'est pas une réponse. – Mac

15

tout. Donc, cette expression rationnelle correspond à 0 ou plusieurs caractères qui commencent et se terminent une chaîne (qui est tout).

+0

Merci pour l'explication – user73829

+0

+1 pour une bonne explication simple –

+3

Par défaut, la plupart des implémentations de regex ne correspondent pas '\ r' et' \ n' pour le méta-char DOT. Donc, pas "tout". –

1

Il correspondra à tout.

^ indique le début de la ligne. $ signifie la fin de la ligne. Cela signifie donc que l'expression doit correspondre à la chaîne entière qui lui est transmise.

. correspondra à n'importe quel caractère. * signifie que la chose avant elle peut apparaître entre 0 à un certain nombre de fois. Cela signifie que la chaîne peut contenir un nombre quelconque de caractères, y compris 0.

2

Correspond à toutes les lignes vides et non vides. Il peut être décomposé en les parties suivantes:

^ : 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

^ = Début de la chaîne ou de la ligne (en fonction des paramètres).

. = Tout caractère.

* = Tout nombre du caractère précédent. Dans ce cas, le ..

$ = Fin de la chaîne ou de la ligne (dépend des réglages).

Rassemblez-les et il peut correspondre à une chaîne entière ou à une ligne entière en fonction des paramètres multilignes (voir this pour plus d'informations).

0

On dirait qu'il correspond à tout, y compris les chaînes vides. Le. * Signifie qu'il correspond à tout (la période) 0 fois ou plus (le *). Le^et le $ sont redondants si vous avez défini l'indicateur multline (pas sûr de ce qu'il est en java).