---
page_title: regexall function reference
description: |-
  The `regexall` function applies a regular expression to a string and returns a list of all matches.
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# `regexall` Function

`regexall` applies a
[regular expression](https://en.wikipedia.org/wiki/Regular_expression)
to a string and returns a list of all matches.

```hcl
regexall(pattern, string)
```

`regexall` is a variant of [`regex`](/packer/docs/templates/hcl_templates/functions/string/regex) and uses the same pattern
syntax. For any given input to `regex`, `regexall` returns a list of whatever
type `regex` would've returned, with one element per match. That is:

- If the pattern has no capture groups at all, the result is a list of
  strings.
- If the pattern has one or more _unnamed_ capture groups, the result is a
  list of lists.
- If the pattern has one or more _named_ capture groups, the result is a
  list of maps.

`regexall` can also be used to test whether a particular string matches a
given pattern, by testing whether the length of the resulting list of matches
is greater than zero.

## Examples

```
> regexall("[a-z]+", "1234abcd5678efgh9")
[
  "abcd",
  "efgh",
]

> length(regexall("[a-z]+", "1234abcd5678efgh9"))
2

> length(regexall("[a-z]+", "123456789")) > 0
false
```

## Related Functions

- [`regex`](/packer/docs/templates/hcl_templates/functions/string/regex) searches for a single match of a given pattern, and
  returns an error if no match is found.

If Packer already has a more specialized function to parse the syntax you
are trying to match, prefer to use that function instead. Regular expressions
can be hard to read and can obscure your intent, making a configuration harder
to read and understand.
