---
schema_version: "1"
id: 7162b63dc60c49289d67f1691abc41d7092bdae42881121f96c432c11ee4087c
title: scan
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/dataweave/2.9/dw-core-functions-scan.md
canonical_url: https://docs.mulesoft.com/dataweave/2.9/dw-core-functions-scan
source_site: docs.mulesoft.com
content_type: documentation
content_hash: e5e599e218234acdf917831b6e30e7913e264ebdca9fa1ecfc673dd724215cd2
description: MuleSoft Documentation Site
release: "2.9"
latest: false
---
---
product: DataWeave
version: 2.9
---

# scan

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

## scan(text: String, matcher: Regex): Array<Array<String>>

Returns an array with all of the matches found in an input string.

Each match is returned as an array that contains the complete match followed by any capture groups
in your regular expression (if present).

### Parameters

<table><colgroup><col> <col></colgroup><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><p><code>text</code></p></td><td><p>The input string to scan.</p></td></tr><tr><td><p><code>regex</code></p></td><td><p>A Java regular expression that describes the pattern match in the <code>text</code>.</p></td></tr></tbody></table>

### Example

In this example, the `regex` describes a URL. It contains three capture groups within the
parentheses, the characters before and after the period (`.`). It produces an array of matches to
the input URL and the capture groups. It uses `flatten` to change the output from an array of arrays
into a simple array. Note that a `regex` is specified within forward slashes (`//`).

#### Source

```DataWeave
%dw 2.0
output application/json
---
flatten("www.mulesoft.com" scan(/([w]*)\.([a-z]*)\.([a-z]*)/))
```

#### Output

```JSON
[ "www.mulesoft.com", "www", "mulesoft", "com" ]
```

### Example

In the example, the `regex` describes an email address. It contains two capture groups, the
characters before and after the `@`. It produces an array matches to the email addresses and capture
groups in the input string.

#### Source

```DataWeave
%dw 2.0
output application/json
---
"anypt@mulesoft.com,max@mulesoft.com" scan(/([a-z]*)@([a-z]*).com/)
```

#### Output

```JSON
[
  [ "anypt@mulesoft.com", "anypt", "mulesoft" ],
  [ "max@mulesoft.com", "max", "mulesoft" ]
]
```

## scan(text: Null, matcher: Any): Null

Helper function that enables `scan` to work with a `null` value.

_Introduced in DataWeave version 2.4.0._
