alt çizgi ile dize adı denetlemek için Normal ifade ifade java regex ifadeleri yeniyim. Dosya adının şu formatta update_9_0_27
biçiminde olup olmadığını nasıl kontrol ederim? [0-9][\\_][0-9][\\_][0-100]
gibi bir şey mi?java
java
cevap
şu çalışmalıdır: Bir dize yalnızca bir kısmını maç olmayacak şekilde
^[a-zA-Z]+_\d_\d_\d{1,2}$
^
ve $
dize çapalar başlıyor. Her bir \d
, tek bir basamakla eşleşecek ve son \d
'dan sonraki {1,2}
"bir ve iki basamak (dahil)" arasında eşleşme anlamına gelir.
dosya adının update
kısmı daima sabittir, o zaman aşağıdaki kullanmalısınız: Java dizede bu regex oluştururken her ters eğik çizgi kaçış gerekir, bu yüzden olacağını
^update_\d_\d_\d{1,2}$
Not dize "^update_\\d_\\d_\\d{1,2}$"
gibi bir şey görünecektir.
Hayır. Java'da çift ters eğik çizgi gerekir;) – ddmps
Sadece açıklığa kavuşturmak için cevabımı ekledim, ancak normal ifadeler istendiğinde, bunu istemedikleri sürece regex motoru tarafından beklenen formatta vermenin daha mantıklı olduğunu düşünüyorum. belirli bir dilde kod. –
Rakam konumları sabit mi, örn. 1-1-2? Java dize Kullanılan
^update\_\d\_\d\_\d\d$
, sıfır-bir, altını ters eğik çizgi
"^update\\_\\d\_\\d\\_\\d\\d$"
[0-9][\\_][0-9][\\_][0-100]
ederek, tek haneli, alt çizgi tek haneli kastediyorsan
\_
alternatif olarak
[_]
kullandık
".*[0-9][_][0-9][_](100|[1-9][0-9]|[0-9]).*"
Bildirimi basit bir alt çizgi oluşturuluyor. Son kısım, özellikle 0-100 için test eder.
Biçiminizi daha fazla tarif edebilir misiniz? 'Update' formatın bir parçası mı? Sadece 9_0_27 için regex oluşturmaya çalıştığınız için soruyorum. – Pshemo
"\\ w +' yeterli olmaz mı? aksi halde, [a-zA-Z] + _ \\ d _ \\ d_ [01]? \\ d {1,2} 'kullanın. – HamZa
@Pshemo yes update, dosya adının bir parçasıdır. – MindBrain