Officially out now: The TypeDB 3.0 Roadmap


The regex keyword is used in TypeQL schema to define the regular expression to restrict possible values for attributes of a given type.


The syntax of a regex statement includes:

  • Subject — attribute type label

  • Predicate — the regex keyword

  • Object — a regular expression to set possible values

<attribute-type> regex <regular-expression>;


TypeQL statements with the regex keyword can be used only in Define queries.

The regex keyword adds a constraint on values of attributes of a given attribute type to be valid strings according to the object regular expression.

Usage in a schema definition

For this example, use a database with the IAM schema and sample data loaded.

Since in Define queries you can’t use variables, the subject of a regex statement can only be an attribute type label.

For example, to define a new attribute type visibility with a value type of string, and values to be limited to public, private, or closed, use:

Define query regex example
visibility sub attribute, value string, regex "^(public|private|closed)$";

Learn more

Learn more about type statement in TypeQL.

Learn about types in TypeQL.

Provide Feedback