0.2.31 • Published 8 years ago

atma-regex v0.2.31

Weekly downloads
13
License
MIT
Repository
github
Last release
8 years ago

Regex

Build Status npm version Bower version

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]]

  • 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 match
  • index:number: match index
  • groups?: RegexGroupMatch[]
  • groups[key]:string : Named group value

RegexGroupMatch::

  • value:string: full match
  • index: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}`);

Live example

See more examples in tests


:copyright: MIT

0.2.31

8 years ago

0.2.30

8 years ago

0.2.29

8 years ago

0.2.28

8 years ago

0.2.27

8 years ago

0.2.26

8 years ago

0.2.25

8 years ago

0.2.24

8 years ago

0.2.23

8 years ago

0.2.22

8 years ago

0.2.20

8 years ago