2012-11-19 16 views
5

Ich kenne die meisten regulären Ausdruck-Engines, einschließlich der in JavaScript \b, um eine Wortgrenze, sei es am Anfang oder am Ende eines Wortes.Gibt es JavaScript-Äquivalente für den Vim-regulären Ausdruck Anfang und Ende von Wortatomen " <" and ">"?

Aber Vim hat auch zwei spezifischere regulären Ausdruck Atome:

Does JavaScript haben ein Äquivalent zu dieser Atome, und wenn nicht, ist es eine Möglichkeit, auszudrücken ihre präzisere Semantik anders?

+0

Eigentlich habe ich gerade angefangen mir Sorgen zu machen, dass '\ <' and '\>' eigentlich von Vim stammen ... vielleicht stammen sie von beiden. Jetzt prüfen ... – hippietrail

+0

Aber wird keine Wortgrenze sowohl der Anfang eines Wortes als auch das Ende eines anderen Wortes sein? Was ist der Unterschied, mit dem du umgehen willst? –

+0

@MarkReed, nein, weil eine Wortgrenze nur mit der Position direkt vor/nach einem Wort übereinstimmt und z. das Leerzeichen vor/nach dem Wort. – stema

Antwort

7

Soweit ich weiß ist nichts vordefiniert. Aber was Sie tun können, ist, ein lookahead an die Wortgrenze hinzuzufügen, um zu überprüfen, ob es der Anfang oder das Ende des Wortes ist.

\< wäre dann \b(?=\w). Dies überprüft, ob nach der Wortgrenze ein Wortzeichen folgt ==> Anfang des Wortes. See this as example on regexr

\> wäre dann \b(?!\w). Dies überprüft, ob nach der Wortgrenze kein Wortzeichen folgt ==> Ende des Wortes

+0

+1, aber Sie sollten '(?! \ W)' anstelle von '(? = \ W)' für den zweiten Fall verwenden. –

+0

@Tim, danke für deinen Kommentar, ich habe es der Lösung hinzugefügt. – stema

+0

Es ist eigentlich nicht nur klarer - Ihre Lösung hätte keine Wortgrenze am Ende der Zeichenfolge gefunden. –