summaryrefslogtreecommitdiffstats
path: root/lib/ansible/plugins/filter/regex_findall.yml
blob: 707d6fa1e9d067de66bbadc0d3139f28e48dc2da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
DOCUMENTATION:
  name: regex_findall
  version_added: "2.0"
  short_description: extract all regex matches from string
  description:
    - Search in a string or extract all the parts of a string matching a regular expression.
  positional: _input, _regex
  options:
    _input:
      description: String to match against.
      type: str
      required: true
    _regex:
      description: Regular expression string that defines the match.
      type: str
    multiline:
      description: Search across line endings if C(True), do not if otherwise.
      type: bool
      default: no
    ignorecase:
      description: Force the search to be case insensitive if C(True), case sensitive otherwise.
      type: bool
      default: no

EXAMPLES: |

  # all_pirates => ['CAR', 'tar', 'bar']
  all_pirates: "{{ 'CAR\ntar\nfoo\nbar\n' | regex_findall('^.ar$', multiline=True, ignorecase=True) }}"

  # get_ips => ['8.8.8.8', '8.8.4.4']
  get_ips: "{{ 'Some DNS servers are 8.8.8.8 and 8.8.4.4' | regex_findall('\\b(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\b') }}"

RETURN:
  _value:
    description: List of matched strings.
    type: list
    elements: str