2010-12-14 49 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