2011-04-08 113 views
3

我正在清理文件中的数据。因此,我阅读每一行并检查某些条件并在文件中执行适当的操作。我需要做的一件事是检查字符串中字符$的出现。如果发现我需要删除包含$的其余行。例如,如果该行是Perl:遇到某个字符后删除其余的字符串

abc$hello-goodbye 

我需要得到

abc 

如何做到这一点在Perl用最少的代码?使用某种类型的正则表达式?

回答

8

最快的是由一个简单的正则表达式:

$string =~ s/\$.*//; 

其中

$string = 'abc$hello-goodbye'; 
1

您可以使用正则表达式或indexsubstr的组合。

这应该不是太难。

1

在Ruby中,

>> "abc$def".split("$")[0] 
=> "abc" 
>> 

同样,使用来自Perl中split()功能做到这一点,并得到第一个元素。请参阅perldoc -f split以获取更多信息

相关问题