/ / Jak znaleźć słowo zaczynające się od określonych liter, a następnie usunąć wszystko inne z ciągu? - tablice, string, perl, www-mechanize, www-mechanize-firefox

Jak znaleźć słowo zaczynające się od określonych liter, a następnie usunąć wszystko inne w ciągu? - tablice, łańcuch, perl, www-mechanize, www-mechanize-firefox

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"));

Mam powyższy kod, który zawiera ciąg znaków. Muszę uchwycić słowo zaczynające się od CSR zawarty w tablicy w ciągu. Jest tylko jeden element @buildno[0]. Muszę dotrzymać słowa i usunąć wszystko inne z ciągu. Próbowałem użyć m// sposób jednak zwraca tylko wartość logiczną, mówiąc mi, że słowo istnieje. Próbowałem też napisów s/// jednak mogę tylko usunąć słowo, które muszę zachować, nie mogę znaleźć sposobu na odwrócenie tej funkcji.

EDYTOWAĆ Udało mi się podzielić ciąg i umieścić go w nowej tablicy, aby każde słowo było osobnym indeksem.

my $buildno = join("", @buildno);
my @build = split(" ",$buildno);
print @build[1];

Słowo, którego szukam w tym przypadku, jest drugim elementem w tablicy, ponieważ jest drugim słowem @build[1]jednak słowo nie zawsze może być drugim słowem w ciągu, może być na przykład czwartym słowem. Moim celem jest uchwycenie tego konkretnego słowa do późniejszego użycia.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz dopasować żądane słowo za pomocą m// przechowywanie go w grupie przechwytywania, a następnie zastąp cały oryginalny ciąg tą dopasowaną grupą:

do {$_ = $1 if /(?:^|s)(CSRS*)/} foreach @buildno;

Próbny: https://ideone.com/1l7YJb