1つの文の中で、マッチする部分が複数あった場合、すべてを箇所を抽出してほしいけど、それができない。勉強したいが、Erlangのドキュメントの英語がよくわからない。
ソース:
-module(re_Test).
-export([start/0]).
%%--------------------------------------------------------------------
%% @doc
%% @spec start() -> ok | error
%% @end
%%--------------------------------------------------------------------
start() ->
Regexp = ["Erlang"],
case re:compile (Regexp) of
{ok,MP} ->
do_regexp (MP),
ok;
{error, ErrSpec} ->
io:format ("Compile Error ~p~n",[ErrSpec]),
error
end.
%%--------------------------------------------------------------------
%% @doc
%% @spec do_regexp(MP) ->
%% @type MP = mp()
%% @end
%%--------------------------------------------------------------------
do_regexp (MP) ->
Subject = ["My favorite Language is Erlang."],
Subject2 = ["I want to study Python."],
case re:run(Subject, MP) of
{match, Captured} ->
io:format ("match:~p~n",[Captured]);
nomatch ->
io:format ("nomatch~n")
end,
case re:run(Subject2, MP) of
{match, Captured2} ->
io:format ("match:~p~n",[Captured2]);
nomatch ->
io:format ("nomatch2~n")
end.
出力結果:
1> c(re_Test).
{ok,re_Test}
2> re_Test:start().
match:[{24,6}]
nomatch2
ok