2014-01-13 35 views
-1

我有一个如下所示的字符串,字符串可能会扩展更多,但我想只排除第一个字,而不是下一个连续。也就是说排除perl中字符串的第一个词

at.below.card 

我想要的O/P样子低于

below.card 
+0

'$字符串=〜S /在//' –

+0

感谢您的回应[。] ,在我的文件中,每行不是以“at”开头,请建议。 – Rukmangathan

+0

我正在使用s/^ \ S + \。 但它只打印第二个字,而不是下一个连续的字 – Rukmangathan

回答

0
$string =~ /.*?\.(.*)/ 
print $1 

这最短的字符串匹配到第一点,然后返回您在$ 1中休息。

+0

感谢您的回应,我得到了解决方案 – Rukmangathan

0

您可以用简单的字符串替换排除第一个单词。

$mywords = "at.below.card"; 
$mywords =~ s/^[^\.]*\.(.*)$/$1/; 
print $mywords; 
+0

=〜s /^[^\.]* \(。*)/ $ 1 /。哇,它工作正常,如预期..你真的让我的一天更容易..很多感谢您的及时响应..祝你有美好的一天。 – Rukmangathan

0

这里有两种方法可以实现这一目标:

use strict; 
use warnings; 

my $string = 'at.below.card'; 

$string =~ s/^.*?\.//; 
print $string, "\n"; 

$string = 'at.below.card'; 
print substr $string, (index $string, '.') + 1; 

输出:

below.card 
below.card 
+0

感谢您的回复,我得到了解决方案 – Rukmangathan

+0

@Rukmangathan - 非常欢迎您! – Kenosis

相关问题