Liking cljdoc? Tell your friends :D

wreck.api

The public API of wreck.

Notes:

  • Apart from passing through nil, this library does minimal argument checking, since the rules for regular expressions vary from platform to platform, and it is a first class requirement that callers be allowed to construct platform specific regular expressions if they wish.
  • As a result, all functions have the potential to throw platform-specific exceptions if the resulting regular expression is syntactically invalid.
  • On the JVM, these will typically be instances of the java.util.regex.PatternSyntaxException class.
  • On JavaScript, these will typically be a js/SyntaxError.
  • Platform specific behaviour is particularly notable for short / empty regular expressions, such as #"{}" (an error on the JVM, fine but nonsensical on JS) and #"{1}" (ironically, fine but nonsensical on the JVM, but an error on JS). 🤡
  • Furthemore, JavaScript performs automatic escaping of the '/' character when a RegExp object is constructed, and (to my knowledge) there is no way to get the original source string back out. This is a problem as wreck is fundamentally dependent on full fidelity regex <-> string round-tripping in order to function, and JavaScript does not appear to support that.
The public API of [`wreck`](https://github.com/pmonks/wreck).

Notes:

* Apart from passing through `nil`, this library does minimal argument
  checking, since the rules for regular expressions vary from platform to
  platform, and it is a first class requirement that callers be allowed to
  construct platform specific regular expressions if they wish.
* As a result, all functions have the potential to throw platform-specific
  exceptions if the resulting regular expression is syntactically invalid.
* On the JVM, these will typically be instances of the
  `java.util.regex.PatternSyntaxException` class.
* On JavaScript, these will typically be a `js/SyntaxError`.
* Platform specific behaviour is particularly notable for short / empty
  regular expressions, such as `#"{}"` (an error on the JVM, fine but
  nonsensical on JS) and `#"{1}"` (ironically, fine but nonsensical on the
  JVM, but an error on JS).  🤡
* Furthemore, JavaScript performs automatic escaping of the '/' character when
  a RegExp object is constructed, and (to my knowledge) there is no way to get
  the original source string back out.  This is a problem as `wreck` is
  fundamentally dependent on full fidelity regex <-> string round-tripping in
  order to function, and JavaScript does not appear to support that.
raw docstring

='clj/s

(=' _)
(=' re1 re2)
(=' re1 re2 & more)

Equality for regexes, defined by having equal String representations. This means that equivalent regexes (e.g. #"..." and #".{3}" will not be considered equal.

Notes:

  • Some JavaScript runtimes that ClojureScript runs on correctly implement equality for regexes, but the JVM does not.
Equality for regexes, defined by having equal `String` representations.  This
means that _equivalent_ regexes (e.g. `#"..."` and `#".{3}"` will _not_ be
considered equal.

Notes:

* Some JavaScript runtimes that ClojureScript runs on correctly implement
  equality for regexes, but the JVM does not.
sourceraw docstring

altclj/s

(alt & res)

Returns a regex that will match any one of res, via alternation.

Notes:

  • Duplicate elements in res will only appear once in the result.
  • Does not wrap the result in a group, which, because alternation has the lowest precedence in regexes, runs the risk of behaving unexpectedly if the result is then combined with further regexes. tl;dr - one of the grouping variants should almost always be preferred.
Returns a regex that will match any one of `res`, via alternation.

Notes:

* Duplicate elements in `res` will only appear once in the result.
* Does _not_ wrap the result in a group, which, [because alternation has the
  lowest precedence in regexes](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_08),
  runs the risk of behaving unexpectedly if the result is then combined with
  further regexes.
  tl;dr - one of the grouping variants should _almost always_ be preferred.
sourceraw docstring

alt-cgclj/s

(alt-cg & res)

alt then cg.

[[alt]] then [[cg]].
sourceraw docstring

alt-grpclj/s

(alt-grp & res)

alt then grp.

[[alt]] then [[grp]].
sourceraw docstring

alt-ncgclj/s

(alt-ncg nm & res)

alt then ncg.

[[alt]] then [[ncg]].
sourceraw docstring

and'clj/s

(and' a b)
(and' a b s)

Returns an 'and' regex that will match a and b in any order, and with the separator regex (if provided) between them. This is implemented as ASB|BSA, which means that A and B must be distinct (must not match the same text).

Notes:

  • May optimise the expression (via de-duplication in alt).
  • Does not wrap the result in a group, which, because alternation has the lowest precedence in regexes, runs the risk of behaving unexpectedly if the result is then combined with further regexes. tl;dr - one of the grouping variants should almost always be preferred.
Returns an 'and' regex that will match `a` and `b` in any order, and with the
`s`eparator regex (if provided) between them.  This is implemented as
`ASB|BSA`, which means that A and B must be distinct (must not match the same
text).

Notes:

* May optimise the expression (via de-duplication in [[alt]]).
* Does _not_ wrap the result in a group, which, [because alternation has the
  lowest precedence in regexes](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_08),
  runs the risk of behaving unexpectedly if the result is then combined with
  further regexes.
  tl;dr - one of the grouping variants should _almost always_ be preferred.
sourceraw docstring

and-cgclj/s

(and-cg a b)
(and-cg a b s)

and' then cg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[and']] then [[cg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

and-grpclj/s

(and-grp a b)
(and-grp a b s)

and' then grp.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[and']] then [[grp]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

and-ncgclj/s

(and-ncg nm a b)
(and-ncg nm a b s)

and' then ncg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[and']] then [[ncg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

cgclj/s

(cg & res)

As for grp, but uses a capturing group.

As for [[grp]], but uses a capturing group.
sourceraw docstring

empty?'clj/s

(empty?' re)

Is re nil or (=' #"")?

Is `re` `nil` or `(=' #"")`?
sourceraw docstring

escclj/s

(esc s)

Escapes s (a String) for use in a regex, returning a String. Note that unlike most other fns in this namespace, this one does not support a regex as an input, nor return a regex as an output.

Escapes `s` (a `String`) for use in a regex, returning a `String`.  Note that
unlike most other fns in this namespace, this one does _not_ support a regex
as an input, nor return a regex as an output.
sourceraw docstring

exnclj/s

(exn n re)

Returns a regex where re will match exactly n times.

Returns a regex where `re` will match exactly `n` times.
sourceraw docstring

exn-cgclj/s

(exn-cg n & res)

cg then exn.

[[cg]] then [[exn]].
sourceraw docstring

exn-grpclj/s

(exn-grp n & res)

grp then exn.

[[grp]] then [[exn]].
sourceraw docstring

exn-ncgclj/s

(exn-ncg nm n & res)

ncg then exn.

[[ncg]] then [[exn]].
sourceraw docstring

grpclj/s

(grp & res)

As for join, but encloses the joined res into a single non-capturing group.

As for [[join]], but encloses the joined `res` into a single non-capturing
group.
sourceraw docstring

joinclj/s

(join & res)

Returns a regex that is all of the res joined together. Each element in res can be a regex, a String or something that can be turned into a String (including numbers, etc.). Returns nil when no res are provided, or they're all nil.

Returns a regex that is all of the `res` joined together. Each element in
`res` can be a regex, a `String` or something that can be turned into a
`String` (including numbers, etc.).  Returns `nil` when no `res` are provided,
or they're all `nil`.
sourceraw docstring

n2mclj/s

(n2m n m re)

Returns a regex where re will match from n to m times.

Returns a regex where `re` will match from `n` to `m` times.
sourceraw docstring

n2m-cgclj/s

(n2m-cg n m & res)

cg then n2m.

[[cg]] then [[n2m]].
sourceraw docstring

n2m-grpclj/s

(n2m-grp n m & res)

grp then n2m.

[[grp]] then [[n2m]].
sourceraw docstring

n2m-ncgclj/s

(n2m-ncg nm n m & res)

ncg then n2m.

[[ncg]] then [[n2m]].
sourceraw docstring

ncgclj/s

(ncg nm & res)

As for grp, but uses a named capturing group named nm. Returns nil if nm is nil or blank. Throws if nm is an invalid name for a named capturing group (alphanumeric only, must start with an alphabetical character, must be unique within the regex).

As for [[grp]], but uses a named capturing group named `nm`.  Returns `nil` if
`nm` is `nil` or blank. Throws if `nm` is an invalid name for a named capturing
group (alphanumeric only, must start with an alphabetical character, must be
unique within the regex).
sourceraw docstring

nomclj/s

(nom n re)

Returns a regex where re will match n or more times.

Returns a regex where `re` will match `n` or more times.
sourceraw docstring

nom-cgclj/s

(nom-cg n & res)

cg then nom.

[[cg]] then [[nom]].
sourceraw docstring

nom-grpclj/s

(nom-grp n & res)

grp then nom.

[[grp]] then [[nom]].
sourceraw docstring

nom-ncgclj/s

(nom-ncg nm n & res)

ncg then nom.

[[ncg]] then [[nom]].
sourceraw docstring

oomclj/s

(oom re)

Returns a regex where re will match one or more times.

Returns a regex where `re` will match one or more times.
sourceraw docstring

oom-cgclj/s

(oom-cg & res)

cg then oom.

[[cg]] then [[oom]].
sourceraw docstring

oom-grpclj/s

(oom-grp & res)

grp then oom.

[[grp]] then [[oom]].
sourceraw docstring

oom-ncgclj/s

(oom-ncg nm & res)

ncg then oom.

[[ncg]] then [[oom]].
sourceraw docstring

optclj/s

(opt re)

Returns a regex where re is optional.

Returns a regex where `re` is optional.
sourceraw docstring

opt-cgclj/s

(opt-cg & res)

cg then opt.

[[cg]] then [[opt]].
sourceraw docstring

opt-grpclj/s

(opt-grp & res)

grp then opt.

[[grp]] then [[opt]].
sourceraw docstring

opt-ncgclj/s

(opt-ncg nm & res)

ncg then opt.

[[ncg]] then [[opt]].
sourceraw docstring

or'clj/s

(or' a b)
(or' a b s)

Returns an 'inclusive or' regex that will match a or b, or both, in any order, and with the separator regex (if provided) between them. This is implemented as ASB|BSA|A|B, which means that A and B must be distinct (must not match the same text).

Notes:

  • May optimise the expression (via de-duplication in alt).
  • Does not wrap the result in a group, which, because alternation has the lowest precedence in regexes, runs the risk of behaving unexpectedly if the result is then combined with further regexes. tl;dr - one of the grouping variants should almost always be preferred.
Returns an 'inclusive or' regex that will match `a` or `b`, or both, in any
order, and with the `s`eparator regex (if provided) between them.  This is
implemented as `ASB|BSA|A|B`, which means that A and B must be distinct (must
not match the same text).

Notes:

* May optimise the expression (via de-duplication in [[alt]]).
* Does _not_ wrap the result in a group, which, [because alternation has the
  lowest precedence in regexes](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_08),
  runs the risk of behaving unexpectedly if the result is then combined with
  further regexes.
  tl;dr - one of the grouping variants should _almost always_ be preferred.
sourceraw docstring

or-cgclj/s

(or-cg a b)
(or-cg a b s)

or' then cg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[or']] then [[cg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

or-grpclj/s

(or-grp a b)
(or-grp a b s)

or' then grp.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[or']] then [[grp]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

or-ncgclj/s

(or-ncg nm a b)
(or-ncg nm a b s)

or' then ncg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[or']] then [[ncg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

qotclj/s

(qot s)

Quotes s (a String) for use in a regex, returning a regex. Note that unlike most other fns in this namespace, this one does not support a regex as an input.

Quotes `s` (a `String`) for use in a regex, returning a regex.  Note that
unlike most other fns in this namespace, this one does _not_ support a regex
as an input.
sourceraw docstring

str'clj/s

(str' o)

Similar to 1-arg clojure.core/str, but on ClojureScript attempts to correct JavaScript's APPALLING stringification of RegExp objects.

Similar to 1-arg `clojure.core/str`, but on ClojureScript attempts to correct
JavaScript's **APPALLING** stringification of RegExp objects.
source (clj)source (cljs)raw docstring

xor'clj/s

(xor' a b)

Returns an 'exclusive or' regex that will match a or b, but not both. This is identical to alt called with 2 arguments, and is provided as a convenience for those who might be building up large logic based regexes and would prefer to use more easily understood logical operator names throughout.

Notes:

  • May optimise the expression (via de-duplication in alt).
  • Does not wrap the result in a group, which, because alternation has the lowest precedence in regexes, runs the risk of behaving unexpectedly if the result is then combined with further regexes. tl;dr - one of the grouping variants should almost always be preferred.
Returns an 'exclusive or' regex that will match `a` or `b`, but _not_ both.
This is identical to [[alt]] called with 2 arguments, and is provided as a
convenience for those who might be building up large logic based regexes and
would prefer to use more easily understood logical operator names throughout.

Notes:

* May optimise the expression (via de-duplication in [[alt]]).
* Does _not_ wrap the result in a group, which, [because alternation has the
  lowest precedence in regexes](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_08),
  runs the risk of behaving unexpectedly if the result is then combined with
  further regexes.
  tl;dr - one of the grouping variants should _almost always_ be preferred.
sourceraw docstring

xor-cgclj/s

(xor-cg a b)

xor' then cg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[xor']] then [[cg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

xor-grpclj/s

(xor-grp a b)

xor' then grp.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[xor']] then [[grp]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

xor-ncgclj/s

(xor-ncg nm a b)

xor' then ncg.

Notes:

  • Unlike most other -grp fns, this one does not accept any number of res.
  • May optimise the expression (via de-duplication in alt).
[[xor']] then [[ncg]].

Notes:

* Unlike most other `-grp` fns, this one does _not_ accept any number of res.
* May optimise the expression (via de-duplication in [[alt]]).
sourceraw docstring

zomclj/s

(zom re)

Returns a regex where re will match zero or more times.

Returns a regex where `re` will match zero or more times.
sourceraw docstring

zom-cgclj/s

(zom-cg & res)

cg then zom.

[[cg]] then [[zom]].
sourceraw docstring

zom-grpclj/s

(zom-grp & res)

grp then zom.

[[grp]] then [[zom]].
sourceraw docstring

zom-ncgclj/s

(zom-ncg nm & res)

ncg then zom.

[[ncg]] then [[zom]].
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close