59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
---
|
|
page_title: regexall - Functions - Configuration Language
|
|
description: >-
|
|
The regex function applies a regular expression to a string and returns a list
|
|
of all matches.
|
|
sidebar_title: regexall
|
|
---
|
|
|
|
# `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`](/language/functions/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`](/language/functions/regex) searches for a single match of a given pattern, and
|
|
returns an error if no match is found.
|
|
|
|
If Terraform 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.
|