Мне удалось найти похожие, но не идентичные вопросы к этому.Как мне сопоставить один шаблон регулярного выражения несколько раз в одной строке, разделенной неизвестными символами?
Например, скажем, я хочу сопоставить шаблон HEY.Я хотел бы распознать все следующее:
HEY
HEY HEY
HEYxjfkdsjfkajHEY
Так что я считаю5 ЭЙ там.Итак, вот моя программа, которая работает для всего, кроме последней:
open ( FH, $ARGV[0]);
while(<FH>)
{
foreach $w ( split )
{
if ($w =~ m/HEY/g)
{
$count++;
}
}
}
Поэтому мой вопрос заключается в том, как заменить этот цикл foreach, чтобы я мог распознавать шаблоны, разделенные странными символами в неизвестных конфигурациях (как показано на рисунке).в приведенном выше примере)?
РЕДАКТИРОВАТЬ:
Спасибо за большой отклик до сих пор.Я только что понял, что мне нужна еще одна вещь, которую я поместил в комментарии ниже.
Один вопрос, хотя: есть ли способ также сохранить соответствующий термин?Как и в моем случае, есть ли способ сослаться на $ w (скажем, если регулярное выражение было более сложным, и я хотел сохранить его в хэше с количеством вхождений)
Так что если ясоответствовал реальному регулярному выражению (скажем, последовательности буквенно-цифровых символов) и хотел сохранить его в хэше.