2017-03-01 2 views
0

Ich benutze die folgende Regex, um eine beliebige Zeichenfolge beginnend mit http: // oder https: // gefolgt von mindestens einem Zeichen, Leerzeichen zu unterlassen und doppelte Anführungszeichen.Regex - keine doppelten Anführungszeichen, es sei denn, ein bestimmtes Wort erscheint vor

^(http|https):\/\/[^ "]+$ 

Was ich tun muß, ist den doppelten Anführungszeichen erlauben, aber nur, wenn Sie http: // oder https: // wird gefolgt von "somethinghere /", zB:

http://somedomain.com?a= "b"

passen nicht

http://somethinghere/?a= "b"

passen

Wie sollen die regex dies zu erreichen aussehen?

Antwort

2

ich würde diesen Ansatz folgen: wobei die ersten (und mehr Ausnahmen folgen können) und der „allgemeinen“ Teil als letztes Mittel

/^https?:\/\/(?:somethinghere[^ ]+|[^ "]+)$/ 

basiclly, ermöglicht es Abwechslungen, mit dem „besonderen“ Teil. Ich hoffe, dass hilft.

0

versucht etwas wie ^(http|https):\/\/[\w]+\/(\?[\w]=\"\w+\")*) .Es erlaubt auch http://abcd/.If Sie wollen nicht, dass letzte * mit + ersetzen.

können Sie versuchen, alle Ihre regex here

+0

Haben Sie die Frage einfach? – Toto

Verwandte Themen