2 Stimmen

Übereinstimmung mit einer Zeichenkette ohne Anführungszeichen

Ich versuche, mit Regexes in PHP auf der Nachrichtenseite meiner Schule (mit WordPress) zu arbeiten. Die Idee ist, dass immer, wenn jemand einen Beitrag speichert, alle Instanzen von "Regis" (ohne "Jesuit" am Ende) durch "Regis Jesuit" ersetzt werden. (Ich gehe auf die Regis Jesuit High School, und die sind sehr wählerisch, was ihr Branding angeht). Insgesamt funktioniert dies gut mit der folgenden case-insensitive regex:

/regis(?! jesuit)/i

Wie kann ich diese Regex so ändern, dass sie nicht übereinstimmt, wenn sie die Zeichenfolge "Regis" oder 'Regis' (in einfachen oder doppelten Anführungszeichen) findet? (oder sogar "I go to Regis High School" ebenfalls in Anführungszeichen)? Die Idee dabei ist, die Regex dort zu ändern, wo es nötig ist, aber sie in direkten Anführungszeichen in den Geschichten der Leute gleich zu lassen, damit wir die Anführungszeichen der Leute nicht ändern.

Danke! Morgan

1voto

Peter Boughton Punkte 105921

Ausgehend von den Kommentaren zu der Frage wäre es vielleicht eine Lösung, die aktuelle Regex beizubehalten, sie aber nur als clientseitige JavaScript-Warnung zu verwenden.

Wenn also der eingegebene Text mit "regis" übereinstimmt und nicht von "jesuit" gefolgt wird, wird vor dem Absenden einfach eine Meldung angezeigt, die besagt, dass "Sie sich vergewissern sollten, dass Sie uns korrekt gebrandmarkt haben", die aber nicht automatisch etwas ändert - im Grunde überlässt man die Sprachkomplexität dem Gehirn eines Menschen, der sie (hoffentlich) verstehen kann. :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X