PHP - Regex für eine Zeichenfolge aus Sonderzeichen

7

Morgen SO. Ich versuche festzustellen, ob eine Zeichenfolge eine Liste bestimmter Zeichen enthält oder nicht.

Ich weiß, dass ich dafür preg_match verwenden sollte, aber mein Regex-Wissen ist bedauerlich und Ich konnte keine Informationen von anderen Posts auf dieser Site abrufen. Da die meisten von ihnen nur Strings auf a-z, A-Z und 0-9 beschränken wollen. Aber ich möchte, dass einige Sonderzeichen erlaubt sind, zum Beispiel: ! @ £ und andere nicht in der folgenden Zeichenfolge.

Zeichen, auf die abgestimmt werden soll: # $ % ^ & * ( ) + = - [ ] \ ' ; , . / { } | \ " : < > ? ~

%Vor%

Ich habe das Matching ursprünglich in Javascript geschrieben, das einfach jeden Buchstaben in der Zeichenkette durchlaufen hat und dann jedes Zeichen in einer anderen Zeichenkette durchlaufen hat, bis es eine Übereinstimmung gefunden hat. Rückblickend kann ich nicht glauben, dass ich überhaupt versucht habe, solch eine archaische Methode anzuwenden. Mit dem Aufkommen von JSON (und einem Neuschreiben der Anwendung!), Wechsle ich die Übereinstimmung zu PHP, um eine Fehlermeldung über Json zurückzugeben.

Ich hatte gehofft, dass ein Regex-Guru bei der Umwandlung der obigen Zeichenfolge in eine Regex-Zeichenfolge helfen könnte, aber jede Rückmeldung wäre willkommen!

    
Stann0rz 20.12.2012, 10:47
quelle

4 Antworten

12

Regexp für eine "Liste von unzulässigen Zeichen" ist nicht obligatorisch.

Sie können sich strpbrk ansehen. Es sollte die Arbeit tun, die Sie brauchen.

Hier ist ein Anwendungsbeispiel

%Vor%

Ссылка

    
Touki 20.12.2012, 11:09
quelle
5
%Vor%     
Jasny - Arnold Daniels 20.12.2012 11:10
quelle
3
%Vor%

Wahrscheinlich können Sie die $pattern zwischenspeichern, abhängig von Ihrer Implementierung.

( Obwohl Sie außerhalb von regulären Ausdrücken suchen, sind Sie am besten mit strpbrk wie hier erwähnt )

    
Dan 20.12.2012 11:10
quelle
0

Ich denke, was du suchst, kann durch das Einfügen der Zeichen, die du gerne zulassen möchtest, erheblich vereinfacht werden:

%Vor%

Hier ist ein kurzer Überblick über das, was passiert:

  • [^] = nicht enthalten
  • \ w = Buchstaben und Zahlen
  • ! @ £ = die Liste der Zeichen, die Sie auch zulassen möchten
Iwnnay 30.12.2015 20:48
quelle

Tags und Links