tire n süreleri için dize içinde ise regex maç

oy
1

Ben en fazla 3 kez bir çizgi içeriyorsa dizeyle eşleşen çalışıyorum:

string-has-4-dashes-example

regex Bu örnekte üzerinde maç olmaz:

string-has-3-dashes

Bu ne yazık ki çalışmıyor

.*-{3,}.*

Amacım böyle bir regex inşa etmektir:

\/germany\/.*-(\d{3,}\.html|\/product\/view\/id.*)$

Böyle benzer türdeki URL'leri maç olacak Hangi

https://www.test.de/germany/bla-blub-test-example-new-2-189.html

Ama değil:

https://www.test.de/germany/test-this-1931.html
Oluştur 27/11/2018 saat 18:11
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Sen 3+ tire ile bir dize eşleştirmek için bu normal ifadeler kullanabilirsiniz:

^(?:[^-]*-){4}

RegEx Demosu

RegEx Detayları:

  • ^: Başla
  • (?:: Sigara yakalama grubu başlatın
    • [^-]*-: Match 0+ olmayan tire karakterleri tire ardından
  • ): Uç olmayan yakalama grubudur.
  • {4}: Yukarıdaki grup 4 örneklerini Eş.
Cevap 27/11/2018 saat 18:17
kaynak kullanıcı

oy
0

Aşağıdaki normal ifadeler kullanabilirsiniz:

^(?=(?:.*-){4,})

Bu başlar start of stringdaha sonra kullanır, look aheadherhangi bir karakterin herhangi bir sayı: arayan. Bu tekrarlanır 4 or more times.

Cevap 27/11/2018 saat 18:22
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more