You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My use case is normalizing input. Is there a way to associate my normalized input value with a regex so I can get that input value instead of the matched regex itself?
The following code works but is rather verbose:
state %STRATEGIES = ( # regex => strategy
'(<undef>|combine)' => 'combine',
'(first|keep)' => 'keep',
'(last|replace)' => 'replace',
);
state $STRATEGY_MAP = Regexp::Assemble->new->flags('i')->track(1)
->anchor_string_begin->anchor_string_end
->add(keys %STRATEGIES);
my $merge_strategy_idx = $STRATEGY_MAP->match($strategy // '<undef>');
# Returns '(<undef>|combine)', '(first|keep)', ...
die unless defined $merge_strategy_idx;
my $merge_strategy = $STRATEGIES{$merge_strategy_idx};
I would instead like to be able to do something like:
state $STRATEGY_MAP = Regexp::Assemble->new->flags('i')->track(1)
->anchor_string_begin->anchor_string_end
->add({re => '(<undef>|combine)', tag => 'combine'},
{re=>'(first|keep)', tag => 'keep'},
{re=>'(last|replace)', tag => 'replace'});
my $merge_strategy = $STRATEGY_MAP->match_tag($strategy // '<undef>');
# Returns 'combine', 'keep', 'replace', or undef
die unless defined $merge_strategy_idx;
I looked in the documentation but did not see a way to do this in the code as it stands. Would you please let me know if there is a way, or whether you would be open to a PR to add it? Thanks!
The text was updated successfully, but these errors were encountered:
My use case is normalizing input. Is there a way to associate my normalized input value with a regex so I can get that input value instead of the matched regex itself?
The following code works but is rather verbose:
I would instead like to be able to do something like:
I looked in the documentation but did not see a way to do this in the code as it stands. Would you please let me know if there is a way, or whether you would be open to a PR to add it? Thanks!
The text was updated successfully, but these errors were encountered: