2010-12-14 39 views
2

我有一个变量 - 由单个空格分隔的2个单词:$ var =“xxxx yyyy”。在Perl中,我如何使用正则表达式,使$ VAR = “XXXX”如何在空间后砍掉字符?

感谢, 三位一体

+0

感谢大家,perl是真实的它的话 - 有不止一种方式来做:) – trinity 2010-12-15 05:32:51

回答

4

不受任何更换\s.+$

$var =~ s/ .+$// 

(按难以捉摸的评论)

+0

+1!那会是'$ var =〜s/\ s。+ $ // g',对吧? – jwueller 2010-12-14 14:09:00

+0

@elusive:我不知道。我从来没有使用Perl :-)。我见过'=〜'用于匹配,也许它也适用于替换,但Perl的语法很重,我真的不知道。 – Joey 2010-12-14 14:12:59

+0

@elusive正确的你。但为什么加上'g'; '全球到最后'? – canavanin 2010-12-14 14:16:31

1
$var = (split//, $var, 2)[0]; 

($var) = $var =~ /^(\S+)/; 
2

你不会!好吧,你可以,但为什么?

substr $var, index($var, ' '), length $var, ''; 

这不是一个过早的优化,但更多的是“避免金锤”的情况。

+1

或者只是'substr($ var,index($ var,''))=“”;' – 2010-12-14 15:47:24

+0

++使用substr作为左值! – Hugmeir 2010-12-14 15:52:16

+0

可爱的,我认为这是我曾经使用类似的东西,这是在VB 6与'中期$';-) – Joey 2010-12-14 16:44:32