Search notes:

Perl regular expressions: non capturing groups

(?:pattern): match (pattern) but don't capture it.
#!/usr/bin/perl
use warnings;
use strict;

use feature 'say';


say extract_number('abc 17 foo 42 more 999'              ); # 42
say extract_number('bar 201 xyz 3 88'                    ); # 201
say extract_number('hello world 1234 - number 17 baz 39.'); # 39


sub extract_number {
  # extract a number after foo, bar or baz

  my $text = shift;

  my ($num) = $text =~ /(?:foo|bar|baz) (\d+)/;
  return $num;
}
Github repository about-perl, path: /regular-expressions/non-capturing-group.pl

See also

Perl regular expressions

Index