0.2.31 • Published 10 years ago

atma-regex v0.2.31

Weekly downloads
13
License
MIT
Repository
github
Last release
10 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

10 years ago

0.2.30

10 years ago

0.2.29

10 years ago

0.2.28

10 years ago

0.2.27

10 years ago

0.2.26

10 years ago

0.2.25

10 years ago

0.2.24

10 years ago

0.2.23

10 years ago

0.2.22

10 years ago

0.2.20

10 years ago