--- title: "How to: Use the REGEXMATCH Regular Expression Formula" slug: "how-to-use-the-regexmatch-regular-expression-formula" description: "Learn to validate email addresses using the REGEXMATCH formula in Data Workflow, enabling or disabling submission buttons based on email format." updated: 2026-01-06T19:03:57Z published: 2026-01-06T19:09:42Z canonical: "docs.unqork.io/how-to-use-the-regexmatch-regular-expression-formula" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # How to: Use the REGEXMATCH Regular Expression Formula Learn how to use the **REGEXMATCH** formula in a Data Workflow component to validate an email address value being submitted by an end-user. You’ll also configure logic that disables a submission button by default, then enables it once the end-user enters a valid email format. > Discover more about regex in our [Using Regex in Unqork](/v1/docs/using-regex-in-unqork) article. UDesignerClassic Designer ## Configure the End-User Components For this example, configure an [Email](/v1/docs/email-component) component where users enter their email address. Then, configure a Button component to submit the data. Later, you’ll configure a Data Workflow component to enable or disable the submission button based on the validity of the email. ### Configure the Email Component First, configure an [Email](/v1/docs/email-component) component to accept an email. 1. In the Module Builder, drag and drop an **Email** component onto your canvas. 2. In the **Property ID** field, enter `email`. 3. In the **Label Text** field, enter `Email`. 4. Click **Save Component**. ### Configure the Button Component Configure a [Button](/v1/docs/how-to-guide-button-component) component to be initially disabled. Later, we’ll use a Data Workflow to enable the button if a valid email address is entered in the Email component. 1. Drag and drop a **Button** component onto your canvas, placing it below the Email component. 2. In the **Property ID** field, enter `btnSubmitEmail`. 3. In the **Label Text** field, enter `Submit Email`. 4. Set **Disable User Input** to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) **(ON)**. This ensures that the end-user cannot select the button before entering an email address. 5. Set **Restrict to Single Click** to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) **(ON)**. This prevents users from accidentally submitting their data multiple times. 6. Click **Save Component**. > [!NOTE] > While you can use the **Regular Expression Pattern** settings in the Email component to validate entries, these settings only notify the end-user if their email is invalid. It does not control the status of the button. To control the visibility of the button, use the Data Workflow to control the Regex. ## Configure the Data Workflow Component Add and configure a [Data Workflow](/v1/docs/data-workflow-component) component to use a REGEXMATCH function to verify the address entered in the `email` **Email** component field. Use a [Branch Split](/v1/docs/branch-split-operator) operator to enable or disable the `btnSubmitEmail` **Button** component depending on the Boolean value returned by the REGEXMATCH function. 1. Drag and drop a **Data Workflow** component onto your canvas, placing it above the Button component. 2. In the **Property ID** and **Canvas Label Text** fields, enter `dwfCheckEmail`. 3. Navigate to the **Actions** settings. 4. Set the **Trigger Type** as **Watch**. ### Configure the Input Operator To begin the Data Workflow, use an [Input](/v1/docs/input-operator) operator to bring in data from your Email component. 1. Drag and drop an **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | email | | Required | Yes | | Source | Default | ### Configure the Formula Operator Add a [Formula](/v1/docs/formula-operator) operator with the following expression: `=REGEXMATCH(A1, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")`. You get this expression by using the REGEXMATCH syntax of `REGEXMATCH(stringToCheck,regularExpression)`. But your formula replaces the `stringToCheck` syntax with `A`. Doing so retrieves data from the operator's input port. Then, replaces `regularExpression` with the email validation Regex. > Your organization’s standards might require a different Regex for validation. 1. Drag and drop a **Formula** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Formula Value | | Label | REGEXMATCH | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Formula/Expression | =REGEXMATCH(A1, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$") | 3. Connect the output port (right) of the **Input** operator to the input port (left) of the **Formula** operator. ### Configure the Branch Split Operator Next, use a [Branch Split](/v1/docs/branch-split-operator) operator to create two paths. If the Formula operator determines the email is valid, the Branch Split operator sends a `No` value. If the email is invalid, the operator sends a `Yes` value. Later, you’ll use these values to enable or disable the submission button. 1. Drag and drop a **Branch Split** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Branch Start | | Label | Yes or No Split | | Do Not Sanitize Formula | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (checked) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Condition | A | 3. Connect the output port (right) of the `REGEXMATCH` **Formula Value** operator to the input port (left) of the `Yes or No Split` **Branch Split** operator. ### Configure the First Create Value Operator Each branch from the Branch Split operator leads to a [Create Value](/v1/docs/create-valueoperator) operator depending on the REGEXMATCH response. The created value controls the submission button’s Enable or Disable state. 1. Drag and drop a **Create Value** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Create Value | | Label | Yes Value (Disable) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Expression/Value | ='yes' | 3. Connect the top output port (upper-right) of the `Yes or No Split` **Branch Split** operator to the argument port (top) of the `Yes Value` **Create Value** operator. ### Configure the Second Create Value Operator 1. Drag and drop a **Create Value** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Create Value | | Label | No Value (Enable) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Expression/Value | ='no' | 3. Connect the bottom output port (lower-right) of the `Yes or No Split` **Branch Split** operator to the argument port (top) of the `No Value` **Create Value** operator. ### Configure the Branch Merge Operator While the data travels through separate logic pathways based on validation results, both paths must converge to update the same target component. Add a [Branch Merge](/v1/docs/branch-merge-operator) operator to unify these pathways, then connect it to an [Output](/v1/docs/output-operator) operator linked to your Button component. The Output operator dynamically toggles the button's state based on the incoming value. If the operator receives a value of `Yes` (invalid email), the button is disabled. If it receives a value of `No` (valid email), the button is enabled. 1. Drag and drop a **Branch Merge** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Branch End | | Label | Yes or No Merge | 1. Connect the output port (right) of the `Yes Value` **Create Value** operator to the top input port (upper left) of the `Yes or No Merge` **Branch Merge** operator. 2. Connect the output port (right) of the `No Value` **Create Value** operator to the bottom input port (lower left) of the `Yes or No Merge` **Branch Merge** operator. ### Configure the Output Operator 1. Drag and drop an **Output** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Output | | Component | btnSubmitEmail | | Action | Disabled | 3. Connect the output port (right) of the `Yes or No Merge` **Branch Merge** operator to the input port (left) of the `btnSubmitEmail` **Output** operator. ![Data workflow diagram illustrating email input, processing, and output steps.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/regexMatchDataWorkflow.webp?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) 4. Click **Save Component**. Your completed module looks like the following: ![Email input field with validation function and submit button for user input.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/regexMatchModuleBuilder.webp?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) Preview your module in Express View and enter an email in the **Email** field. The **Submit Email** button remains disabled until a valid email is entered. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/RegexMatch_Express.gif?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) ## Configure the End-User Components For this example, configure an [Email](/v1/docs/email-component) component where users enter their email address. Then, configure a Button component to submit the data. Later, you’ll configure a Data Workflow component to enable or disable the submission button based on the validity of the email. ### Configure the Email Component First, configure an [Email](/v1/docs/email-component) component to accept an email. 1. In the Module Builder, drag and drop an **Email** component onto your canvas. 2. In the **Property ID** field, enter `email`. 3. In the **Label Text** field, enter `Email`. 4. Click **Save**. ### Configure the Button Component Configure a [Button](/v1/docs/how-to-guide-button-component) component to be initially disabled. Later, we’ll use a Data Workflow to enable the button if a valid email address is entered in the Email component. 1. Drag and drop a **Button** component onto your canvas, placing it below the Email component. 2. In the **Property ID** field, enter `btnSubmitEmail`. 3. In the **Label Text** field, enter `Submit Email`. 4. Set **Disable User Input** to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) **(ON)**. This ensures that the end-user cannot select the button before entering an email address. 5. Set **Restrict to Single Click** to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) **(ON)**. This prevents users from accidentally submitting their data multiple times. 6. Click **Save & Close**. > [!NOTE] > While you can use the **Regular Expression Pattern** settings in the Email component to validate entries, these settings only notify the end-user if their email is invalid. It does not control the status of the button. To control the visibility of the button, use the Data Workflow to control the Regex. ## Configure the Data Workflow Component Add and configure a [Data Workflow](/v1/docs/data-workflow-component) component to use a REGEXMATCH function to verify the address entered in the `email` **Email** component field. Use a [Branch Split](/v1/docs/branch-split-operator) operator to enable or disable the `btnSubmitEmail` **Button** component depending on the Boolean value returned by the REGEXMATCH function. 1. Drag and drop a **Data Workflow** component onto your canvas, placing it above the **Button** component. 2. In the **Property ID** and **Canvas Label Text** fields, enter `dwfCheckEmail`. > [!NOTE] > These are example Property ID and Label Texts. In your use case, enter unique values for these fields. 3. Navigate to the **Actions** settings. 4. Set the **Trigger Type** to **Watch**. ### Configure the Input Operator To begin the Data Workflow, use an [Input](/v1/docs/input-operator) operator to bring in data from your Email component. 1. Drag and drop an **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | email | | Required | Yes | | Source | Default | ### Configure the Formula Operator Add a [Formula](/v1/docs/formula-operator) operator with the following expression: `=REGEXMATCH(A1, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")`. You get this expression by using the REGEXMATCH syntax of `REGEXMATCH(stringToCheck,regularExpression)`. But your formula replaces the `stringToCheck` syntax with `A`. Doing so retrieves data from the operator's input port. Then, replaces `regularExpression` with the email validation Regex. > Your organization’s standards might require a different regex for validation. 1. Drag and drop a **Formula** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Formula Value | | Label | REGEXMATCH | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Formula/Expression | =REGEXMATCH(A1, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$") | 3. Connect the output port (right) of the **Input** operator to the input port (left) of the **Formula** operator. ### Configure the Branch Split Operator Next, use a [Branch Split](/v1/docs/branch-split-operator) operator to create two paths. If the Formula operator determines the email is valid, the Branch Split operator sends a `No` value. If the email is invalid, the operator sends a `Yes` value. Later, you’ll use these values to enable or disable the submission button. 1. Drag and drop a **Branch Split** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Branch Start | | Label | Yes or No Split | | Do Not Sanitize Formula | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (checked) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Condition | A | 3. Connect the output port (right) of the `REGEXMATCH` **Formula Value** operator to the input port (left) of the `Yes or No Split` **Branch Split** operator. ### Configure the First Create Value Operator Each branch from the Branch Split operator leads to a [Create Value](/v1/docs/create-valueoperator) operator depending on the REGEXMATCH response. The created value controls the submission button’s Enable or Disable state. 1. Drag and drop a **Create Value** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Create Value | | Label | Yes Value (Disable) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Expression/Value | ='yes' | 3. Connect the top output port (upper-right) of the `Yes or No Split` **Branch Split** operator to the argument port (top) of the `Yes Value` **Create Value** operator. ### Configure the Second Create Value Operator 1. Drag and drop a **Create Value** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Create Value | | Label | No Value (Enable) | | Preserve Argument Type | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/icon_unchecked(1).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) (unchecked) | | Expression/Value | ='no' | 3. Connect the bottom output port (lower-right) of the `Yes or No Split` **Branch Split** operator to the argument port (top) of the `No Value` **Create Value** operator. ### Configure the Branch Merge Operator While the data travels through separate logic pathways based on validation results, both paths must converge to update the same target component. Add a [Branch Merge](/v1/docs/branch-merge-operator) operator to unify these pathways, then connect it to an [Output](/v1/docs/output-operator) operator linked to your Button component. The Output operator dynamically toggles the button's state based on the incoming value. If the operator receives a value of `Yes` (invalid email), the button is disabled. If it receives a value of `No` (valid email), the button is enabled. 1. Drag and drop a **Branch Merge** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Branch End | | Label | Yes or No Merge | 1. Connect the output port (right) of the `Yes Value` **Create Value** operator to the top input port (upper left) of the `Yes or No Merge` **Branch Merge** operator. 2. Connect the output port (right) of the `No Value` **Create Value** operator to the bottom input port (lower left) of the `Yes or No Merge` **Branch Merge** operator. ### Configure the Output Operator 1. Drag and drop an **Output** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Output | | Component | btnSubmitEmail | | Action | Disabled | 3. Connect the output port (right) of the `Yes or No Merge` **Branch Merge** operator to the input port (left) of the `btnSubmitEmail` **Output** operator. ![Data workflow diagram showing email input, validation, and output processes.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/regexMatchDataWorkflowClassic.webp?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) 4. Click **Save**. Your completed module looks like the following: ![Email input field with validation function and submit button in application interface.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/regexMatchModuleBuilderClassic.webp?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) Preview your module in Express View and enter an email in the **Email** field. The **Submit Email** button remains disabled until a valid email is entered. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/RegexMatch_Express.gif?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A57Z&se=2026-11-07T18%3A57%3A57Z&sr=c&sp=r&sig=oV4yl9PrK%2FsPQn%2BRKcVEEhYDWlyCsn%2FP2gneqtOigQI%3D) End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. A Property ID is the unique field ID used by Unqork to track and link components in your module. Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. The VCS (version control system) Contributor role has permissions to edit modules in a branch. Set contributors during the VCS Create a Branch process. The Boolean data type accepts one of two values: true, or, false. Express View is how your end-user views your application. Express View also lets you preview your applications to test your configuration and view the styling. This is also the view your end-users will see when interacting with your application. After configuring a module, click Preview in the Module Builder to interact with the module in Express View.