新聞中心
本文和大家重點(diǎn)討論一下Perl字符串的一些基本操作,比如Perl字符串?dāng)?shù)組元素賦值:@tmp=qw(aaabbbkkk9000);相當(dāng)于@tmp=(“aaa”,“bbb”,“kkk”,“9000)。至于其他操作請(qǐng)看本文詳細(xì)介紹。

創(chuàng)新互聯(lián)公司專(zhuān)注于長(zhǎng)清網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供長(zhǎng)清營(yíng)銷(xiāo)型網(wǎng)站建設(shè),長(zhǎng)清網(wǎng)站制作、長(zhǎng)清網(wǎng)頁(yè)設(shè)計(jì)、長(zhǎng)清網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造長(zhǎng)清網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供長(zhǎng)清網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
Perl字符串操作
Perl字符串?dāng)?shù)組元素賦值:@tmp=qw(aaabbbkkk9000);相當(dāng)于@tmp=(“aaa”,“bbb”,“kkk”,“9000);
◆Perl字符串比較,絕不能用==,要用eq
[macg@localhostPerltest]$vitip.pl
#!/usr/bin/Perl
print"input:";
while(chomp($input=<>)){
print"yourinputis$input\n";
if($input=="q"){print"chooseq\n";last;}
elsif($input=='n'){print"inputis$input\n";next;}
else{print"inputok,tryagain\n";}
print"input:";
}
[macg@localhostPerltest]$./tip.pl
input:x
yourinputisx
chooseq
◆Perl字符串用==是最常犯的錯(cuò)誤
即使是整形,也盡量用eq,少用==
while(chomp($input=
{
for($i=1,$found=0;$i<=$int_num;$i++)
{
if($input==$i){$found=1;}
else
Doyouwanttochangeeth0:2'sipaddress?回車(chē)
Argument""isn'tnumericinnumericeq(==)at./address.plline77,
對(duì)整形變量$input==$i,如果$input是回車(chē),并不走else,而是報(bào)錯(cuò)
正確的做法是:不論整形Perl字符串,都用eq
while(chomp($input=
{
for($i=1,$found=0;$i<=$int_num;$i++)
{
if($inputeq$i){$found=1;}
}
whichinterfaceyouwanttoconfig?choiceanumber1234q:1
Doyouwanttochangeeth0'sipaddress?
◆Perl字符串幾種連接運(yùn)算符
運(yùn)算符,常用于輸出
print"純金",$v1;
print$str,"\n\n";
.運(yùn)算符和,類(lèi)似也是Perl字符串相加但,通常只用于print而.可以用在任何Perl字符串相加的地方
print'12345大家來(lái)跳舞'."helloworld";
結(jié)果變成:
12345大家來(lái)跳舞helloworld
x運(yùn)算符號(hào)
print"OK"x4;
結(jié)果變成:
OKOKOKOK
◆為什么Perl字符串相加只能用.不能用+
因?yàn)榭赡?就是真加了(數(shù)字相加),而不是Perl字符串合并
$v1=99;
$v2='121';
print$v1+$v2;
$v1=99;
$v2='121';
print$v2.$v1;
220
12199
◆Perl字符串的連接可以連接整形和字符形,整形也被當(dāng)作字符型處理,沒(méi)有printf里的%d問(wèn)題
$min=1;
$date="date"."0".$min;
print$date,"\n";
[root@ntrackermac]#./tip.pl
date01
uc轉(zhuǎn)成大寫(xiě),lc轉(zhuǎn)成小寫(xiě)
$str="abCD99e";
$str=uc($str);
$str="abCD99e";
$str=lc($str);
[macg@localhostPerltest]$./tip.pl
ABCD99E
[macg@localhostPerltest]$./tip.pl
abcd99e #p#
◆Perl字符串中l(wèi)ength取串長(zhǎng)(字符數(shù)量)
#!/usr/bin/Perl
$str="abCD99e";
$strlen=length($str);
print$strlen,"\n";
[macg@localhostPerltest]$./tip.pl
7
◆substr串,位置,長(zhǎng)度-------取子串,注意從0開(kāi)始數(shù)位置
#!/usr/bin/Perl
$str="ABCDEFG1234567";
$a=substr$str,0,5;
print$a,"\n";
[macg@localhostPerltest]$./tip.pl
ABCDE
$a=substr$str,-4,2;
從倒數(shù)第4個(gè)開(kāi)始,取兩個(gè)字符
[macg@localhostPerltest]$./tip.pl
45
◆index在字串中找尋某一子字串的起始位置
#!/usr/bin/Perl
$str="ABCDEFG1234567";
$a="12";
$pos=index($str,$a);
print$pos,"\n";
[macg@localhostPerltest]$./tip.pl
7
@數(shù)組=split(pattern,串)將Perl字符串用某模式分成多個(gè)單詞
#!/usr/bin/Perl
$str="ABCDEiFG12i34567";
@array=split(//,$str);按空格分
foreach(@array){
print$_,"\n";
}
[macg@localhostPerltest]$./tip.pl
ABCDEi
FG12i
345
6
7
@array=split(/+/,$line);當(dāng)一行中各單詞間的空格多于一個(gè)時(shí)
◆空格和TAB混雜情況下的split
[macg@localhostPerltest]$vitip.pl
#!/usr/bin/Perl
$str="ABCDEiFG12i34567";
@array=split(/\t/,$str);
foreach(@array){
print$_,"\n";
}
[macg@localhostPerltest]$./tip.pl
ABCDEiFG12i
34567
只分了兩份,為什么?
因?yàn)橥瑫r(shí)滿(mǎn)足TAB和空格的只有一處
所以必須加[]
@array=split(/[\t]/,$str);現(xiàn)在才是真正的按空格和TAB分
[macg@localhostPerltest]$./tip.pl
ABCDEi
FG12i
345
6
7
但還是有缺陷,TAB和空格相連時(shí),TAB被認(rèn)為是空格劃分的子串,或者空格被認(rèn)為是TAB劃分的子串
◆用join定義Perl字符串?dāng)?shù)組格式符號(hào)(缺省是,)必須與qw()合用
語(yǔ)法:join($string,@array)
@array=qw(onetwothree);
$total="one,two,three";
@array=qw(onetwothree);
$total=join(":",@array);
$total="one:two:three";
數(shù)組內(nèi)grep
@array=("one","on","in");
$count=grep(/on/,@array);
查詢(xún)結(jié)果賦值給單變量
@array=("one","on","in");
@result=grep(/on/,@array);
查詢(xún)結(jié)果賦值給數(shù)組
2
one
on
【編輯推薦】
- 解析Perl字符串用法
- Perl多線(xiàn)程的兩種實(shí)現(xiàn)方式
- Perl二維數(shù)組用法全程剖析
- Perl基礎(chǔ) Perl 哈希表概述
- 解析Perl正則表達(dá)式中的模式
本文題目:Perl字符串基本操作詳解
新聞來(lái)源:http://m.fisionsoft.com.cn/article/cdpdjds.html


咨詢(xún)
建站咨詢(xún)
