Concepts  
## Templating Language  

In order to facilitate the extraction of values and dynamic generation of content, we introduced a templating language – [Liquid](https://shopify.github.io/liquid/) - to the Answers platform.
  
Liquid is a templating language with simple markup, made so that users can edit it.
  
Use templating language in all fields in which you can enter text and variables, in Answers elements. Example: Text fields in Text element and List element.
  
Liquid code uses **objects, tags**, and **filters** in a template which is then rendered and the content is dynamically shown. **Template** is any message you create that contains templating language elements.
  
### Objects [#objects-templating-language]

Objects are used to show content on a page. Objects and variable names are denoted by double curly braces: {{ and }}.
  
**Types of objects**: String, Number, Boolean, Nil, and Array.

More about [Liquid objects](https://shopify.github.io/liquid/basics/introduction/#objects).
  
### Tags [#tags-templating-language]

Tags create the logic and control flow for templates. They are denoted by curly braces and percent signs: {% tag %}. Tags do not render into any visible text; you use them to assign variables and create conditions and loops in the background.
  
There are five different types of tags:
  
• *Comment tags*– use {% comment %} and {% endcomment %} tags to turn anything between them into a comment.
  
• *Control flow tags*– change the displayed information using programming logic: if, unless, elseif/else, case/when.
  
• *Iteration tags* – for, else, break, continue, plus additional tags for parameters (limit, offset, range, reversed), cycle, and tablerows (cols, limit, offset, range) to repeatedly run blocks of code.
  
• *Raw tags* – used to temporarily disable tag processing, {% raw %} and {% endraw %}.
  
• *Variable tags* – assign, capture, increment and decrement are used to create new variables in the templating language.
  
|  |
|  |
| != | does not equal |
| > | greater than |
| < | less than |
| >= | greater than or equal to |
| <= | less than or equal to |
| or | logical or |
| and | logical and |
  
Learn more about [Liquid tags](https://shopify.github.io/liquid/basics/introduction/#tags).
  
### Filters [#filters-templating-language]

Filters change the output of the template language object. They are used within the object and are separated by a | (pipe) character. You can use multiple filters for one output applying them from left to right (each separated by the | character). Check the list of all [available filters](https://shopify.github.io/liquid/basics/introduction/#filters).
  
If you want to dive deeper into examples how to use templating language in Answers, check the [How to](https://www.infobip.com/docs/how-to#templating-language) section.
  
## Regular Expressions  

[Regex](https://www.infobip.com/glossary/regex) (regular expression) is useful in situations where you want to check, match, or validate different inputs, like check if a string contains numbers, or validate if the input is a phone number.
  
Use regular expressions in the **Save user response** and **Code** elements.
  
Here is a list of the most commonly used operations in Regex:
  
Character classes
  
.               any character except newline
  
\w \d \s    word, digit, whitespace
  
\W \D \S  not word, digit, whitespace
  
[abc]       any of a, b, or c
  
[^abc]     not a, b, or c
  
[a-g]       character between a & g
  
Anchors
  
^abc$    start / end of the string
  
\b           word boundary
  
Escaped characters
  
\. \\* \\    escaped special characters
  
Groups & Lookaround
  
(abc)      capture group
  
\1            backreference to group #1
  
(?:abc)   non-capturing group
  
(?=abc)  positive lookahead
  
(?!abc)   negative lookahead
  
Quantifiers & Alternation
  
a\* a+ a?     0 or more, 1 or more, 0 or 1
  
a\{5\} a\{2,\}    exactly five, two or more
  
a\{1,3\}          between one & three
  
a+? a\{2,\}?    match as few as possible
  
ab|cd          match ab or cd
  
For information about how to use regular expression in your chatbot, refer to the [How to](https://www.infobip.com/docs/how-to#regular-expressions) section.