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

# scan

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

## scan(String, 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" ]
]
```
