2017-07-02 2 views
0

Ich versuche @ ‚s zu entsprechen, die durch nichts oder Leerzeichen wie im folgende Beispiel vorangehen werden:Regex: Nicht-Wort-Zeichen mit Leerzeichen vorangestellt oder am Anfang einer Zeile

@one 
    @two 
    [email protected] 
    /@four 

Mein Ansatz ist (^|\s)@, aber dies erfasst one two three four. \[email protected] erfasst nur two. Wie bekomme ich one two, ohne three four zu bekommen?

Wenn es relevant ist, sind alle @ 's durch einen Buchstaben gefolgt.

+0

@mickmackusa Es ist für Codemirror mit Hilfe von JavaScript. Entschuldige meine Unwissenheit, wenn das eine wesentliche Information ist. –

Antwort

1

Wie wäre es mit ^\s*@? Das heißt, Anfang der Zeile, gefolgt von null oder mehr Leerzeichen, dann @. (Beachten Sie, verschiedene laguanges haben unterschiedliche Regex Regeln)

1

Dies ist ein Weg:

/^ *@(.+)/ #allow null oder mehr Leerzeichen vor @ dann alles beginnen passende, bis ein Newline-Zeichen.

Javascript Demo

1

Wenn Sie Lookbehind verwenden können, sollte diese Arbeit (nicht in nativer Javascript unterstützt):

(?<=\s|^)@ 
Verwandte Themen