Normal ifade içinde herhangi bir sayıda karakterin sembolü mü?


142

Herhangi bir karakterin herhangi bir numarası (sıfır dahil) için bir sembol olduğunu merak ediyorum

Yanıtlar:



33

Bu normal ifadeyi (herhangi bir boşluk veya boşluk olmayan) 0'a kadar ve 0 dahil olmak üzere mümkün olduğunca çok kullanabilirsiniz.

[\s\S]*

Bu ifade mümkün olduğunca az, ancak ifadenin geri kalanı için gerektiği kadar eşleşecektir.

[\s\S]*?

Örneğin, bu regex [\s\S]*?Beşleşir aBiçinde aBaaaaB. Ama bu regex [\s\S]*Beşleşir aBaaaaBiçinde aBaaaaB.


[\ s \ S] ile. arasında herhangi bir fark var mı?
linqu

8
@linqu, .bazen \nçok satırlı seçeneğe bağlı olarak eşleşmez (yeni satır), ancak [\s\S]herhangi bir karakterle eşleşir.
Ajan-j

19

Demek istedin

.*

. newline karakteri hariç herhangi bir karakter, dotall moduyla newline karakterlerini de içerir

* 0 kez dahil olmak üzere önceki ifadenin herhangi bir miktarı


4

Kullanırdım .*. .herhangi bir karakterle eşleşir, *0 veya daha fazla tekrar anlamına gelir. Yeni satırlar yakalamak için normal ifade için DOTALL anahtarına ihtiyacınız olabilir ..


-7

Evet, bir tane var, yıldız işareti: *

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

Bu, aradığınız tüm Java regex eğiticilerinde veya belgelerinde ele alınmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.