2010-03-08 111 views
-1

請好心幫我在下面,
分割功能

$sub = C:\views\sght\gzad\text\hksdk\akldls\hool.java 
     = C:\views\sght\bdsk\text\hksdfg\sdjks\same.java 
     = C:\views\jdjk\jhah\fjd\afhlad\sitklds\hgls.jsp 

我需要更換每一個「\」有「」
我需要拆分$子這樣的方式 如果$子中含有「文本」然後分裂,一個變量包含文本後的後半部分喜歡 -

$var1 =text.hksdk.akldls.hool.java 
     text.hksdfg.sdjks.same.java 

其他

$var2= views.jdjk.jhah.fjd.afhlad.sitklds.hgls.jsp 
+2

請重新格式化,使之成爲可讀。 – AxelEckenberger 2010-03-08 14:22:49

+1

你可以看到http://stackoverflow.com/editing-help如何正確地重新格式化它。 – 2010-03-08 14:23:43

回答

0

您的'$ sub ='賦值語句令人困惑。這是一個由空間分隔的路徑的標量嗎?

我正確地認爲你想要在$ sub中列出的路徑,並把「文本」的列表放入一個列表中,而沒有列入另一列表的列表中?

假設上述所有的: 「」

my $sub = ""; # initialize this however you will. 

my @paths = split(/ /, $sub); # space-separated paths to list 

my (@with_text, @without); 
foreach my $p (@paths){ 
    $p =~ s/\\/./g;    # replace \ with . 
    if($p =~ /text/){ 
     push(@with_text, $p); 
    } else{ 
     push(@without, $p); 
    } 
} 

my $var1 = join(' ', @with_text); # a space-separated list of paths containing 'text' 
my $var2 = join(' ', @without); # a space separated list of paths not containing 'text' 
0

我需要更換每一個 「\」 有

您可以在名爲$text的變量上使用:$text =~ s/\\/./g - 請參閱perldoc perlop

我需要拆分$子這樣一種方式,如果$子中含有「文本」,然後分開,一個變量包含文本

後,後期這是一個直接的應用該split()功能(見perldoc -f split):

my $sub = "foobarbaz"; 
my @split = split /(bar)/, $sub; 
# $split[0] will contain "foobar" 
# split[1] will contain "baz"