2017-03-24 5 views
0

ich für fehlerhafte URLs überprüfen möchten, so fand ich diese Regex online:egrep Berichte „Ungültige Zeichenbereich“

/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w][email protected])?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w][email protected])[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/ 

Aber die Sache ist, dass es gibt mir die Meldung ‚Ungültige Zeichenbereich‘. Ich wundere mich warum.

+0

Ihr ursprünglicher Titel erwähnte 'egrep -x'. Die Option "-x" scheint für das Problem nicht relevant zu sein. –

Antwort

0

Es mag nicht die [\w-_], wo es einen Bereich "von Wordcharacter zu Unterstreichung" erwartet.
Zumindest in meinem Test (Suche über Regex in np ++, d. H. Ein Perl Geschmack),
die Beschwerde tritt bereits für diese kleine Sub-Regex.

+0

Wie @Yunnosch mit einigem Zusatz erwähnt: alle Bindestriche müssen in Klammern an das Ende gesetzt werden, dann wird es wahrscheinlich auf diese Weise gut gehen. – zolo