JavaScript Regular Expression Library for NodeJS and Browsers.
-
Named Groups
(?<name>expression)
,(?'name'expression)
-
Group index positions within the input
-
Named Backreferences
\k<name>
,\k'name'
-
Named subexpressions
\g<name>
-
Comment Groups
(?# my comment)
-
Atomic Groups
(?>ab|c)
Temporarly disabled for better performance. The group is converted into JS none-captured group.
-
Positive-/Negative Lookbehind
(?<=expression)
(?<!expression)
-
Anchors
\A
,\Z
,\z
,\G
-
Possessive Quantifiers
++
*+
-
Options
-
x
:(?x) \\d #comment
-
i
:a(?i)b(?-i)c(?i:hello)
Temporarly disabled for better performance. The only first matched entry defines the flags for the expression
-
-
Unicode
\x{HEX}
:\x{200D}
\p{CATEGORY}
:\p{L}
-
POSIX
[:ascii:]
,[:^ascii:]
, etc
-
Characters class
- intersection:
[a-z&&[^c]]
- intersection:
-
Character types
- (non-) hexadecimal :
\h
,\H
- (non-) hexadecimal :
var rgx = new Regex('Name:\\s*(?<name>\\w+)');
var match = rgx.mach('My Name: Baz');
equals(match.groups.name, 'Baz');
$ npm i atma-regex -s
$ bower install atma-regex --save
var Regex = require('atma-regex');
var rgx = new Regex(pattern: string, flags: string);
exec(input:string, index: number = this.lastMatch): JsMatch
match(input:string, index: number = this.lastMatch): RegexMatch
matches(input:string): RegexMatch[]
lastIndex: number
Javascript-compatible result object with additional properties:
groups:Object
: key-value. Named group values
value:string
: full matchindex:number
: match indexgroups?: RegexGroupMatch[]
groups[key]:string
: Named group value
value:string
: full matchindex:number
: match index
var Regex = require('atma-regex');
var rgx = new Regex('(?<=a)([pr])');
var match = rgx.match('-p--apa');
console.log(`Matches '${match.value}' at pos #${match.index}`);
See more examples in tests
©️ MIT