implementation of the node-oniguruma API using xregexp, various shims, replacements, and elbow grease.
- It would be nice to be able to parse TextMate grammars (the basis for syntax highlighting in Atom) in pure JS:
- JavaScript's regex parser lacks some useful features, such as lookbehinds. onigurumajs adds them.
See node-oniguruma.
- extended xregexp syntax described here: http://xregexp.com/syntax/
- leading lookbehind zero-length assertions:
var scanner = new OnigScanner(['(?<!a)b'])
scanner.test('bb') // match.
scanner.test('ab') // fails to match.
- lookbehind assertions following alternation characters:
var scanner = new OnigScanner(['cat|(?<!a)b'])
scanner.test('cat') // match.
scanner.test('bb') // match.
scanner.test('ab') // fails to match.
\x{xxxx}
format unicode escape codes
var scanner = new NOnigScanner(['\\x{2603}'])
scanner.findNextMatchSync('☃') // match.
This is a work in progress please join in, open some issues, submit pull requests, and help build a crazy full-featured regex parser for JavaScript.
ISC