Regex
JavaScript Regular Expression Library for NodeJS and Browsers.
Features
-
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 :
Named Groups
var rgx = 'Name:\\s*(?<name>\\w+)';var match = rgx;;
API
Npm/Bower
$ npm i atma-regex -s$ bower install atma-regex --save
var Regex = ;var rgx = pattern: string flags: string;
Regex::
exec(input:string, index: number = this.lastMatch): JsMatch
match(input:string, index: number = this.lastMatch): RegexMatch
matches(input:string): RegexMatch[]
lastIndex: number
JsMatch::
Javascript-compatible result object with additional properties:
groups:Object
: key-value. Named group values
RegexMatch::
value:string
: full matchindex:number
: match indexgroups?: RegexGroupMatch[]
groups[key]:string
: Named group value
RegexGroupMatch::
value:string
: full matchindex:number
: match index
Sample:
var Regex = ;var rgx = '(?<=a)([pr])';var match = rgx; console;
See more examples in tests
©️ MIT