0.2.31 • Published 8 years ago
atma-regex v0.2.31
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:]
, etcCharacters class + intersection:
[a-z&&[^c]]
Character types + (non-) hexadecimal :
\h
,\H
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