如何找到以指定字母开头的单词然后删除字符串中的所有其他内容?
How to find a word beginning with specified letters then remove everything else in the string?
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//
方式,但它只是 returns 一个布尔值告诉我这个词存在。我也尝试过替换 s///
但是我只能删除我需要保留的词,我想不出一种方法来反转该功能。
编辑
我已经设法将字符串拆分并放入一个新数组中,因此每个单词都是一个单独的索引。
my $buildno = join('', @buildno);
my @build = split(' ',$buildno);
print @build[1];
我在这个例子中寻找的词是数组中的第二个元素,因为它是第二个词 @build[1]
但是这个词可能并不总是字符串中的第二个词,它可能是例如第四个字。我的目的是捕捉那个特定的词供以后使用。
您可以使用 m//
将所需的词存储在捕获组中,然后用匹配的组替换整个原始字符串:
do {$_ = if /(?:^|\s)(CSR\S*)/} foreach @buildno;
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//
方式,但它只是 returns 一个布尔值告诉我这个词存在。我也尝试过替换 s///
但是我只能删除我需要保留的词,我想不出一种方法来反转该功能。
编辑 我已经设法将字符串拆分并放入一个新数组中,因此每个单词都是一个单独的索引。
my $buildno = join('', @buildno);
my @build = split(' ',$buildno);
print @build[1];
我在这个例子中寻找的词是数组中的第二个元素,因为它是第二个词 @build[1]
但是这个词可能并不总是字符串中的第二个词,它可能是例如第四个字。我的目的是捕捉那个特定的词供以后使用。
您可以使用 m//
将所需的词存储在捕获组中,然后用匹配的组替换整个原始字符串:
do {$_ = if /(?:^|\s)(CSR\S*)/} foreach @buildno;