Symbole pour n'importe quel nombre de caractères dans regex?


142

Je me demande s'il existe un symbole pour n'importe quel nombre (y compris zéro) de n'importe quel caractère

Réponses:



33

Vous pouvez utiliser cette expression régulière (n'importe quel espace ou tout autre espace) autant de fois que possible jusqu'à 0 inclus.

[\s\S]*

Cette expression correspondra aussi peu que possible, mais autant que nécessaire pour le reste de l'expression.

[\s\S]*?

Par exemple, dans cette expression régulière [\s\S]*?Bcorrespondra aBà aBaaaaB. Mais dans ce regex [\s\S]*Bcorrespondent aBaaaaBà aBaaaaB.


y a-t-il une différence entre [\ s \ S] et.?
linqu

8
@linqu, .ne correspondra parfois pas \n(nouvelle ligne), selon l'option multiligne, mais [\s\S]correspondra à n'importe quel caractère.
agent-j

19

Tu veux dire

.*

. tout caractère, sauf le caractère de nouvelle ligne, avec le mode dotall, il inclut également les caractères de nouvelle ligne

* toute quantité de l'expression précédente, y compris 0 fois


4

J'utiliserais .*. .correspond à n'importe quel caractère, *signifie 0 ou plusieurs occurrences. Vous pourriez avoir besoin d'un commutateur DOTALL vers l'expression régulière pour capturer de nouvelles lignes avec ..


-7

Oui, il y en a un, c'est l'astérisque: *

a* // looks for 0 or more instances of "a"

Cela devrait être couvert dans tout didacticiel ou documentation Java regex que vous recherchez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.