2016-03-28 14 views
0

YaniHerhangi bir sayıda sözcükten sonra Regex eşleşmesi

/a/b/c/Dont Want This/tag gibi bir desen var.

Şimdi desen herhangi karakter olabilir a/b/ gibi yani diğer bazı desenler olurdu sonra:

  1. /a/b/c/d/Dont Bu/etiket ister
  2. /a /b/c/d/e/.../x/Dans İsterseniz/rastgele şeyler/etiketler

Regex, "Bunu Yapma" dizesinin dizinde görünmediğini kontrol etmek için negatif görünüm kullanır ayrıca dizenin "etiket" ile bittiğini de kontrol edin. ?. Python'un yeniden modülünü kullanarak

:

Sorunum nasıl "Dont Bu ister" önce ve/a/b

PS" sonra görünen tüm olası şeyler için izin vermek için ben şaşırıp olmasıdır peşin

Teşekkür

+1

Yani verilen 'Bu ister /a/b/c/d/e/.../x/Dont/rastgele şeyler/tag', eşleşmesini istersiniz'/c/d/e /.../ x/'? –

+0

"/a/b/c/d/../tag" olan ancak "/ a/b" ve "/ tag" arasındaki herhangi bir yerde "Bunu Yapma" özelliğine sahip olmayan herhangi bir desenle eşleşen bir normal ifade istiyorum. Ayrıca "/ a/b" ve sonundaki "/ tag" den önce herhangi bir sayı (önceki satırda belirtilenler dışında) sayılar olabilir. – amrx

cevap

1

negatif lookahead dayalı bu regex deneyebilirsiniz:.

^/a/b(?!.*/Dont Want This).*/tag$ 

(?!.*/Dont Want This)/Dont Want This appea izin vermez /a/b ile başlayan ve /tag ile biten girdilerde çalın.

RegEx Demo

+0

Yani '^ \/a \/b (?!. * \/Dont Want This). * \/Tag $ '' '' '' '' '' '' ' –

+0

kaçmak gerektiğinden korkarım sanırım gerekliliği belirtmek "Dont Want It" ifadesinin "/ a/b" ve "/ tag" arasında herhangi bir yerde görünmesi durumunda normal ifadeler eşleşmemelidir. Yani "/ a/b" ile başlayan ve "/ tag" ile biten ve aralarında herhangi bir yerde "Dont Want This" olmayan herhangi bir dize iyi ve eşleşmelidir. – amrx

+1

@Harsh: Python'dan kaçmak zorunda değilsiniz '/' – anubhava

İlgili konular