PHP Küçük regex soru

2 Cevap php

Ben bir dize her şeyi AMA belirli bir desen çalışıyorum.

Benim desen:

$pattern = "/^[a-zA-Z0-9]+$/D";

Ve ben aşağıdakileri yapmak isteyebilirsiniz:

$string = preg_replace(anything but $pattern, "", $string);

Bunu nasıl yapabilirim?

Teşekkürler!

2 Cevap

Şapka kullanın "^" karakter sınıfında bu karakterleri istemiyorum demek.

$pattern = "/^[^a-zA-Z0-9]+$/D";

Explanation

^ Bu karakter sınıfında yer almayan tek bir karakterle eşleştirmek için neden karakter sınıfını olumsuzlar. (Yerleştirilmiş ise [açılış sonrası hariç her yerde bir şapka belirtir)

Source, regular-expressions.info

$pattern = /^[^a-zA-Z0-9]+$/D

^ köşeli parantezler arasında, [ ve ], hepsi değil, onları grup maçı yapacak. Bu amaçla dizenin başından maç olacak, bunu da gerek wether emin değilim.

$pattern = "[^a-zA-Z0-9]+?"

Diğer desen ile eşleşen almaz dize tüm parçaları eşleştirerek çalışacak.