Normal ifade: editClassification/(?P<pk>[\d+])
Bu python regexp'de neden d + bir rakamı eşleştiriyorsunuz?
dize eşleştirmek için: foo/editClassification/10
Normal ifade: editClassification/(?P<pk>[\d+])
Bu python regexp'de neden d + bir rakamı eşleştiriyorsunuz?
dize eşleştirmek için: foo/editClassification/10
\d+
bir karakter sınıfının ([...]
) içinde olduğu için; [\d+]
, bir rakam ya da +
olan bir karakterle eşleşir.
Bunun yerine (?P<pk>\d+)
yazmanız gerekiyordu. Sizin \d+
bir karakter sınıfı (Regexp Tutorial veya PHP Docs bulunabilir fazla bilgi) içindeydi. Bu, içindeki herhangi bir harfin seçildiği anlamına gelir. Örneğin, (a|b|c)
, [abc]
karakter sınıfına eşdeğerdir. Yani karakter sınıfınız bir rakam ya da +
ile eşleşiyordu.
köşeli parantez ]
'u \d+
sayfasından çıkarmalısınız. Yeni RegEx:
editClassification/(?P<pk>\d+)
Alternatif olarak, sadece karakter sınıfının dışında +
hareket olabilir, ama bu sadece alanı atıklar.
kaldırmak karakter sınıfı ve kullanım '(\ d +)' yerine – rock321987
Bu genellikle geldiği zaman '[\ d] 'ya da' [\ s] 'gibi insanlar aşırı karakter sınıfları. Genişlemeye çalıştıklarında, sıkışıklaşıyorlar ve bu soruları sıkça ortaya çıkıyorlar. –