RegexSolverRegexSolver
  • Live Demo
  • Docs
  • Pricing
  • Open Source ↗
  • Console ↗
Console ↗
  • Docs
  • API Reference
HELP
  • Documentation
  • Report an issue ↗
RESOURCES
  • Developer console
  • GitHub ↗
LEGAL
  • Privacy policy
  • Terms & conditions
RegexSolverRegexSolver

© 2026 REGEXSOLVER · ALL RIGHTS RESERVED

Analyze
    CardinalitypostGraphviz DOTpostEmptypostEmpty String OnlypostTotalitypostDeterministicpostEquivalentpostLengthpostPatternpostSubsetpost
Compute
    ConcatenationpostDifferencepostIntersectionpostRepeatpostUnionpostComplementpostDeterminizepost
Generate
    Stringspost
Account
    Limitsget
Schemas
RegexSolver API
RegexSolver API

Analyze

Inspect properties of a term, such as cardinality, length, or equivalence.


Cardinality

POST
https://api.regexsolver.com/v1
/analyze/cardinality

Compute how many strings the term matches.

Cardinality › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Cardinality › Responses

Cardinality result.

success
​boolean · required
​Cardinality · required

Number of unique strings matched by a term.

POST/analyze/cardinality
Term term = Term.regex("[a-z]"); client.getCardinality(term);
Example Request Body
{ "term": { "type": "regex", "value": "[a-z]" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "integer", "value": 26 } }
json
application/json

Graphviz DOT

POST
https://api.regexsolver.com/v1
/analyze/dot

Build a Graphviz DOT representation of the term's automaton.

Graphviz DOT › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Graphviz DOT › Responses

Graphviz DOT representation.

success
​boolean · required
​String · required

Wrapper for a string value.

POST/analyze/dot
Term term = Term.regex("[a-z]"); client.getDot(term);
Example Request Body
{ "term": { "type": "regex", "value": "[a-z]" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "string", "value": "digraph Automaton {\n\trankdir = LR;\n\t0\t[shape=circle,label=\"0\"];\n\tinitial [shape=plaintext,label=\"\"];\n\tinitial -> 0\n\t0 -> 1 [label=\"[a-z]\"]\n\t1\t[shape=doublecircle,label=\"1\"];\n}" } }
json
application/json

Empty

POST
https://api.regexsolver.com/v1
/analyze/empty

Check if the term matches no strings.

Empty › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Empty › Responses

Empty language result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/empty
Term term = Term.regex("[]"); client.isEmpty(term);
Example Request Body
{ "term": { "type": "regex", "value": "[]" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Empty String Only

POST
https://api.regexsolver.com/v1
/analyze/empty_string

Check if the term matches only the empty string.

Empty String Only › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Empty String Only › Responses

Empty string only result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/empty_string
Term term = Term.regex(""); client.isEmptyString(term);
Example Request Body
{ "term": { "type": "regex", "value": "" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Totality

POST
https://api.regexsolver.com/v1
/analyze/total

Check if the term matches all the possible strings.

Totality › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Totality › Responses

Totality result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/total
Term term = Term.regex(".*"); client.isTotal(term);
Example Request Body
{ "term": { "type": "regex", "value": ".*" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Deterministic

POST
https://api.regexsolver.com/v1
/analyze/deterministic

Check if the term's automaton is deterministic. Only a deterministic FAIR guarantees consistent string ordering across paginated /generate/strings requests; call /compute/determinize first if this is false.

Deterministic › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Deterministic › Responses

Determinism result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/deterministic
Term term = Term.fair("<uw$8AJYkaU].HFn1kT[tx*-VAZ8usSKXcEKZ[wx:F8vYuR-b?tFFk1eM2RXs9yuu5dakz7r/{!AW9/(hK0]knHS&Q]!@K=ahmGr1Dbjb5(XE1UT%Ab@8rXvYop}$"); client.isDeterministic(term);
Example Request Body
{ "term": { "type": "fair", "value": "<uw$8AJYkaU].HFn1kT[tx*-VAZ8usSKXcEKZ[wx:F8vYuR-b?tFFk1eM2RXs9yuu5dakz7r/{!AW9/(hK0]knHS&Q]!@K=ahmGr1Dbjb5(XE1UT%Ab@8rXvYop}$" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Equivalent

POST
https://api.regexsolver.com/v1
/analyze/equivalent

Check if the two terms accept exactly the same language.

Equivalent › Request Body

Request carrying exactly 2 terms.
TwoTermsRequest
​Term[] · minItems: 2 · maxItems: 2 · required

Exactly 2 terms.

​RequestOptions

Change how the engine handles the operation.

Equivalent › Responses

Language equivalence result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/equivalent
Term term1 = Term.regex("(abcd|abef)"); Term term2 = Term.regex("ab(cd|ef)"); client.equivalent(term1, term2);
Example Request Body
{ "terms": [ { "type": "regex", "value": "(abcd|abef)" }, { "type": "regex", "value": "ab(cd|ef)" } ] }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Length

POST
https://api.regexsolver.com/v1
/analyze/length

Compute the minimum and maximum length of strings matched by the term.

Length › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Length › Responses

Length bounds.

success
​boolean · required
​Length · required

Minimum and maximum length of any string in the language.

POST/analyze/length
Term term = Term.regex("(abc)?d"); client.getLength(term);
Example Request Body
{ "term": { "type": "regex", "value": "(abc)?d" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "length", "min": 1, "max": 4 } }
json
application/json

Pattern

POST
https://api.regexsolver.com/v1
/analyze/pattern

Return a regular expression pattern that represents the term.

Pattern › Request Body

Request carrying a single term.
TermRequest
​Term · required

Serialized term.

​RequestOptions

Change how the engine handles the operation.

Pattern › Responses

Regular expression pattern.

success
​boolean · required
​String · required

Wrapper for a string value.

POST/analyze/pattern
Term term = Term.fair("<uw$8AJYkaU].HFn1kT[tx*-VAZ8usSKXcEKZ[wx:F8vYuR-b?tFFk1eM2RXs9yuu5dakz7r/{!AW9/(hK0]knHS&Q]!@K=ahmGr1Dbjb5(XE1UT%Ab@8rXvYop}$"); client.getPattern(term);
Example Request Body
{ "term": { "type": "fair", "value": "<uw$8AJYkaU].HFn1kT[tx*-VAZ8usSKXcEKZ[wx:F8vYuR-b?tFFk1eM2RXs9yuu5dakz7r/{!AW9/(hK0]knHS&Q]!@K=ahmGr1Dbjb5(XE1UT%Ab@8rXvYop}$" } }
json
application/json
Example Responses
{ "success": true, "data": { "type": "string", "value": "deabc" } }
json
application/json

Subset

POST
https://api.regexsolver.com/v1
/analyze/subset

Check if the first term's language is a subset of the second term's language.

Subset › Request Body

Request carrying exactly 2 terms.
TwoTermsRequest
​Term[] · minItems: 2 · maxItems: 2 · required

Exactly 2 terms.

​RequestOptions

Change how the engine handles the operation.

Subset › Responses

Subset result.

success
​boolean · required
​Boolean · required

Wrapper for a boolean value.

POST/analyze/subset
Term term1 = Term.regex("de"); Term term2 = Term.regex("(abc|de)"); client.subset(term1, term2);
Example Request Body
{ "terms": [ { "type": "regex", "value": "de" }, { "type": "regex", "value": "(abc|de)" } ] }
json
application/json
Example Responses
{ "success": true, "data": { "type": "boolean", "value": true } }
json
application/json

Compute