atma-regex
v0.2.31
Published
Enhanced Regular Expressions
Downloads
14
Readme
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 = new Regex('Name:\\s*(?<name>\\w+)');
var match = rgx.mach('My Name: Baz');
equals(match.groups.name, 'Baz');
API
Npm/Bower
$ npm i atma-regex -s
$ bower install atma-regex --save
var Regex = require('atma-regex');
var rgx = new Regex(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 = 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
:copyright: MIT