Я хочу только первый рисунок до slash_flash захвачен.Perl не-жадный матч
Я попытался это:
$var1 = slash_flash*_target_bit[*]_slash_hit\n
$var1 =~ s/^(.*)\*?(.*)$/$1/g if ($var1 =~ /\*/);
Я получаю всю строку обратно:
> $var1 = slash_flash*_target_bit[*]_slash_hit
Примечание: $ var1 может начать с чем-нибудь. Таким образом, вы не можете начать сопоставление шаблонов с определенным словом или рисунком. Вот почему я попробовал (. *)
Я обновленный вопрос, основанный на этом. Как заставить шаблон соответствовать любой из следующих двух строк: «code» $ var1 = slash_flashold_target_bit [0] или $ var1 = clone_flashnew_target_bit [5] –
@cosmo kramer, зависит от конкретного вы хотите быть '/.*/' должно сработать. '/^(?: slash_flashold_target_bit \ [0 \] | clone_flashnew_target_bit \ [5 \]) \ z /' будет соответствовать только этим двум строкам. Возможно, вы ищете что-то вроде '/ _flashold_target_bit \ [[0-9] + \] \ z /'. – ikegami