---
title: Contains One of & Does not Contain One of
slug: segment/contains-one-of-and-does-not-contain-one-of
docTags: 
createdAt: 2026-01-15T00:48:01.084Z
---

:::hint{type="info"}
These filter types are available for *Text, EmailAddress, Phone,&#x20;*&#x61;nd *Locale&#x20;*&#x66;ield types.
:::

## *Contains one of&#x20;*&#x66;ilter type

The *Contains one of&#x20;*&#x66;ilter checks whether a field contains at least one value from a list of specified substrings (i.e. *Does this field contain any of these words?*). This filter is especially helpful when:

- Finding users with emails from common free domains (e.g., gmail, yahoo, hotmail)
- Filtering product names that contain any of several keywords
- Pulling campaign names that include a set of promo codes or tags

### Example

You want to find all email addresses that contain either *gmail* or *yahoo*.

- **Field:** **Email Address**
- **Filter:** *Contains One Of*
- **Values:** *gmail*, *yahoo*

**Matches:**

- jane.doe\@gmail.com ✅
- test\@yahoo.com ✅
- alex\@outlook.com ❌

![](https://support.deselect.com/hc/article_attachments/34588082994449)

## *Does not Contain one of&#x20;*&#x66;ilter type

The *Does not Contain one of&#x20;*&#x66;ilter excludes any records that contain even one of the specified substrings. This is especially helpful when:

- Cleaning up test data or internal records
- Excluding campaign names with certain tags (e.g., “TEST\_”, “INTERNAL\_”)
- Filtering out unwanted products or messages based on naming

### Example

You want to exclude test or internal users by filtering out emails that contain “test”, “demo”, or “internal”.

- **Field:** Email Address
- **Filter:** Does Not Contain One Of
- **Values:** test, demo, internal

**Results:**

- testuser\@company.com ❌
- demo123\@gmail.com ❌
- realuser\@gmail.com ✅

![](https://support.deselect.com/hc/article_attachments/34588083010449)

### Empty values in ***Does Not Contain*** filters

When you create a *Does Not Contain* filter, you expect it returns any record that doesn't include the specified text, including records where the field is empty. However, the standard SQL *NOT LIKE* operator automatically excludes empty (NULL) values. Hence, standard SQL filtering for *Does Not Contain* *X* excludes all empty records, effectively acting as *Does Not Contain X.* To prevent this behavior, and match user expectations, Unaric Segment automatically adds an *OR field IS NULL* statement to the backend query.

## Best practices

For finding matches using both filters, we recommend these best practices:

:::hint{type="success"}
- Do not use wildcards (\* or %). Most platforms treat these as built-in partial string matches.
- Keep in mind input values are usually comma-separated without space in UI filters (e.g., promo,discount,sale)
- Use these filters when you want to match multiple possibilities in one go, instead of setting up multiple “OR” conditions.
:::

