Match String against Regex. On success, Sub
is a dict containing integer keys for the numbered capture group and
atom keys for the named capture groups. The entire match string has the
key 0. The associated value is determined by the capture_type(Type)
option passed to re_compile/3,
or by flags if Regex is of the form Pattern/Flags; and may be
specified at the level of individual captures using a naming convention
for the caption name. See
re_compile/3 for details.
The example below exploits the typed groups to parse a date
specification:
?- re_matchsub("(?<date> (?<year_I>(?:\\d\\d)?\\d\\d) -
(?<month_I>\\d\\d) - (?<day_I>\\d\\d) )"/x,
"2017-04-20", Sub, []).
Sub = re_match{0:"2017-04-20", date:"2017-04-20",
day:20, month:4, year:2017}.
| Both | compilation and execution options are
processed. See
re_compile/3 and re_match/3
for the set of options. In addition, some compilation options may passed
as /Flags to Regex - see
re_match/3 for the list of flags. |
| Regex | See re_match/2
for a description of this argument. |