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

Skizit
la source

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.

agent-j
la source
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

stema
la source
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 ..

Chagrin
la source
-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.

Loduwijk
la source