/ / ¿Cómo encontrar una palabra que comience con letras específicas y luego eliminar todo lo demás en la cadena? - matrices, cadenas, perl, www-mechanize, www-mechanize-firefox

¿Cómo encontrar una palabra que comience con letras específicas y luego eliminar todo lo demás en la cadena? - matrices, string, 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"));

Tengo el código anterior que contiene una cadena. Necesito capturar la palabra que comienza con CSR contenido en la matriz dentro de una cadena. Solo hay un elemento @buildno[0]. Necesito mantener la palabra y eliminar todo lo demás en la cadena. He intentado usar el m// De todas formas, solo devuelve un booleano que me dice que la palabra existe. También he tratado de subtitular. s/// sin embargo, solo puedo eliminar la palabra que necesito mantener, no puedo encontrar una manera de revertir esa función.

EDITAR He logrado dividir la cadena y colocarla en una nueva matriz para que cada palabra sea un índice separado.

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

La palabra que busco en este caso es el segundo elemento de la matriz, ya que es la segunda palabra @build[1]sin embargo, la palabra puede no ser siempre la segunda palabra de la cadena, por ejemplo, podría ser la cuarta palabra. Mi propósito es capturar esa palabra específica para su uso posterior.

Respuestas

1 para la respuesta № 1

Puedes hacer coincidir la palabra deseada usando m// almacenándolo en un grupo de captura y luego reemplace toda la cadena original con ese grupo coincidente:

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

Manifestación: https://ideone.com/1l7YJb