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

# 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._
