Как найти слово, начинающееся с указанных букв, а затем удалить все остальное в строке?
my @buildno = $mech->xpath('/html/body/form/table/tbody/tr[2]/td[3]/table
/tbody/tr[2]/td/table/tbody/tr[1]/td/table/tbody/tr[1]/td', type =>
$mech->xpathResult('STRING_TYPE'));
У меня есть код выше, который содержит строку. Мне нужно поймать слово, начинающееся с CSR
содержится в массиве в строке. Есть только один элемент @buildno[0]
, Мне нужно сохранить слово и удалить все остальное в строке. Я пытался использовать m//
однако, он возвращает только логическое значение, говорящее мне, что слово существует. Я также попытался заменить s///
однако я могу удалить только то слово, которое мне нужно сохранить, я не могу найти способ отменить эту функцию.
РЕДАКТИРОВАТЬ Мне удалось разделить строку и поместить ее в новый массив, чтобы каждое слово представляло собой отдельный индекс.
my $buildno = join('', @buildno);
my @build = split(' ',$buildno);
print @build[1];
Слово, которое я ищу в этом случае, является вторым элементом в массиве, поскольку это второе слово. @build[1]
однако слово не всегда может быть вторым словом в строке, это может быть, например, четвертое слово. Моя цель - запечатлеть это конкретное слово для последующего использования.
1 ответ
Вы можете найти нужное слово, используя m//
сохраняя его в группе захвата, а затем заменив всю исходную строку на соответствующую группу:
do {$_ = $1 if /(?:^|\s)(CSR\S*)/} foreach @buildno;