2016-04-22 17 views
1

Ich versuche, alle Vorkommen eines Sonderzeichens / von Buchstaben oder Zahlen umgeben zu finden.Finden Sie Zeichenmuster mit Regex

Nach vielen Versuchen habe ich mit der folgenden Regex kommen, die fast das tut, was ich brauche:

(?![a-z0-9])\/(?=[a-z0-9]) 

Dies funktioniert für diese Beispiele fein:

aa/aa 
123/123 
aa/123 

vermag jedoch nicht, wenn es sind zwei Schrägstriche zusammen:

http://regexr.com/ 

In diesem Fall entspricht es dem zweiten Schrägstrich a nach http was ich nicht will.

Wie kann ich diesen Regex ändern, um meine Bedürfnisse zu erfüllen?

EDIT: Ich nicht zu einem Spiel wünschen, wenn zwei Schrägstriche zusammen sind. Ich möchte nur übereinstimmen, wenn ein einzelner Schrägstrich von alphanumerischen Zeichen umgeben ist.

+0

Dann Sie die Wieder wollen Soll "http: // regexr.com /" nicht als Übereinstimmung erkannt werden? –

Antwort

2

Sie würden eine positive Lookbehind Gruppe benötigen, etwa so:

(?<=[a-z0-9])+\/{1}(?=[a-z0-9]+) 

jedoch nach http://regexr.com/ ist es nicht in Javascript unterstützt.

Funktioniert gut in z.B. http://pythex.org/ Python

1

Versuchen Sie, diese

(!?[a-z0-9])\/(?=[a-z0-9]) 
+0

Vielen Dank für Ihren Vorschlag. Bitte sehen Sie meine Bearbeitung. – Sesame

2

Easy!

(?![a-z0-9])\/+(?=[a-z0-9]) 

Sie sollten + für 1 auf mehr Vorkommen eines Zeichens setzen. Sie sollten also \/+ anstatt nur \/ geschrieben haben.

+0

Vielen Dank für Ihren Vorschlag. Bitte sehen Sie meine Bearbeitung. – Sesame

0

Versuchen Sie, diese

[a-z0-9](\/)[a-z0-9] 

Regex demo

Erläuterung:
(…): Gruppe Capturing sample
\: Escapes Sonderzeichen sample

Verwandte Themen