Perl字串處理

文章推薦指數: 80 %
投票人數:10人

print "金",$v1; print $str,"\n\n";. '.'運算子和','類似,也是Perl字串相加 ... International-English International English Country/Site 中国站-简体中文 Cart Console LogInSignUp TopicCenter About Products Solutions Pricing Marketplace Partners ContactSales Submit 首頁> 開發者> Perl Perl字串處理 最後更新:2018-12-04 來源:互聯網 上載者:User 創建阿里雲帳戶,並獲得超過40款產品的免費試用版;而企業帳戶則可以享有總值$1200的免費試用版。

立即註冊!  眾所周知Perl處理字串的功能非常強大,Perl(PracticalExtractionandReportinglanguage)處理格式的功能也非常強大,這裡我們就開始學習一些Perl的格式和字串處理。

熟悉其最強大的三個函數:substr、pack、unpack。

1、大小寫處理函數lc(轉為小寫)uc(轉為大寫)。

$text="zhengwenfeng";$text2=lc$text;$text3=uc$text;print"$text2\n";print"$text3\n"; 2、將第一字母變為小寫(lcfirst),將第一個字母大寫(ucfirst)。

$string="zheng";$string2=lcfirst$string;$string3=ucfirst$string;print"$string2\n";print"$string3\n"; 3、順序尋找string位置(index),逆序尋找string位置(rindex)。

index在字串中找尋某一子字串的起始位置。

$string="zhengwenfengzhengwenfeng";$position1=index($string,"wen");$position2=index($string,"wen",10);$position3=rindex($string,"zheng");$position4=rindex($string,"zheng",10);print"$position1,$position2,$position3,$position4\n"; #!/usr/bin/Perl$str="ABCDEFG1234567";$a="12";$pos=index($str,$a);print$pos,"\n"; [hto@localhost]$./tipind.pl7 4、擷取子串函數substr,功能非常強大,可以直接支援以一個字串代替字串的一個子串。

$text="zhengwenfeng愛KittyKitty";$replace_to="愛";$replace_with="喜歡";substr($text,index($text,$replace_to),length($replace_to),$replace_with);print"$text\n"; 5、字串中取串長(字元數量)-length#!/usr/bin/Perl$str="abCD99e";$strlen=length($str);print$strlen,"\n";[htog@localhost]$./tiplen.pl7 8、pack和unpack函數用於字串的打包和解包,功能非常強大,支援多種打包格式字串處理的。

$decimal=17;$newdecimal=unpack("B32",pack("N",$decimal));print"$newdecimal\n";$string="張大華愛中國";@array1=unpack("c*",$string);@array2=unpack("C*",$string);print(join(",",@array1),"\n");print(join(",",@array2),"\n");$string1=pack("c*",@array1);$string2=pack("C*",@array2);print"$string1\n";print"$string2\n"; 9、列印格式-sprintf$value=1234.56789;printsprintf"%.4f\n",$value; 10、字串比較函數eq、ne、cmp、lt、gt、le、ge,使用cmp就好。

絕不能用'==',要用eq,正確的做法是:不論整形Perl字串,都用eq。

$string1="大華";$string2="大華";if($string1eq$string2){print"$sting1==$string2\n";}if($string1ne$string2){print"$string1!=$string2\n";} if(($string1cmp$string2)==0){print"$string1==$string2\n";} $string1="zheng";$string2="Kitty";if($string1lt$string2){print"leftright\n";} if($string1le$string2){print"leftright\n";} 11、字元分割操作-split@數組=split(pattern,串),將Perl字串用某模式分成多個單詞。

#!/usr/bin/Perl$str="ABCDEiFG12i34567";@array=split(//,$str);按空格分foreach(@array){print$_,"\n";} [hto@localhost]$./tip.plABCDEiFG12i34567 @array=split(/+/,$line);當一行中各單詞間的空格多於一個時。

空格和TAB混雜情況下的split[hto@localhost]$vitip.pl #!/usr/bin/Perl$str="ABCDEiFG12i34567";@array=split(/\t/,$str);foreach(@array){print$_,"\n";} [hto@localhost]$./tip.plABCDEiFG12i34567 只分了兩份,為什嗎?因為同時滿足TAB和空格的只有一處,所以必須加[]。

@array=split(/[\t]/,$str);現在才是真正的按空格和TAB分 [hto@localhost]$./tip.plABCDEiFG12i 34567 但還是有缺陷,TAB和空格相連時,TAB被認為是空格劃分的子串,或者空格被認為是TAB劃分的子串。

$string="張大華愛中國";@array=split(//,$string);#這種方法無法將其進行分成"張","大","華","愛","中","國"等單字print(join(",",@array),"\n"); 12、示範中文字元夾帶英文字元的反序(使用了多個函數)print"------begin-----\n";$string1="中國love!張大華";@array=unpack("C*",$string1);$length=$#array;#此數組的最後一個下標for(;$length>=0;){if($array[$length]<=128){#英文或者標點push(@array2,$array[$length]);$length=$length-1;}else{#中文字元push(@array2,$array[$length-1]);push(@array2,$array[$length]);$length=$length-2;}} $string2=pack("C*",@array2);print"$string2\n";$dir=dir;printqx/$dir/;@name=qw/zhengwenfengKittyKitty/;printjoin(",",@name); 13、字元合併作業-join用join定義Perl字串數組格式符號(預設)必須與qw()合用。

文法:join($string,@array)@array=qw(onetwothree);$total="one,two,three";@array=qw(onetwothree);$total=join(":",@array);$total="one:two:three"; 14、匹配數組內元素字串-grep@array=("one","on","in");$count=grep(/on/,@array);查詢結果賦值給單變數@array=("one","on","in");@result=grep(/on/,@array);查詢結果賦值給數組2oneon 15、字串串連-'.='關於perl字串串連的方法討論。

$line=$line."456";這個語句中,line要被計算兩次。

$line.="456";運算子',',常用於輸出:print"金",$v1;print$str,"\n\n"; '.'運算子和','類似,也是Perl字串相加但通常只用於print而'.'可以用在任何Perl字串相加的地方。

print'12345大家來'."helloworld";結果變成:12345大家來helloworld 16、重複串連運算子號-xprint"OK"x4;結果變成:OKOKOKOK這個計算一次就可以了。

Perl字串的串連可以串連整形和字元形,整形也被當作字元型處理,沒有printf裡的%d問題。

17、雙引號字串中的轉義符符號  含義\n  換行\r  斷行符號\t  定位字元\f  formfeed\b  退格\a  響鈴\e  escape(ASCII中的escape字元)\007  任何八進位值(這裡是,007=bell(響鈴))\x7f  任何十進位值(這裡是,007=bell)\cC  一個控制符(這裡是,ctrl+c)\\  反斜線\"  雙引號\l  下個字元小寫\L  接著的字元均為小寫直到\E\u  下個字元大寫\U  接著的字元均為大寫直到\E\Q  在non-word字元前加上\,直到\E\E  結束\L,\E和\Q 本文章原先以中文撰寫並發佈於aliyun.com,亦設英文版本,僅作資訊用途。

本網站不對文章的準確性,完整性或可靠性或其任何翻譯作出任何明示或暗示的陳述或保證。

如對該文章有任何疑慮或投訴,請傳送電郵至[email protected]並提供相關疑慮或投訴的詳細說明。

職員會於5個工作天內與您聯絡,一經驗證之後,即會刪除該侵權內容。

相關關鍵詞: curlperl chopperl localtimeperl perlassert perlchmod perlchr perlcmd Perl中use和require用法對比分析_perl 01-18 Perl變數的作用my,our,local和全域變數_Perl 08-21 Perl語言中的$_和@_ 08-23 perl中chomp的使用介紹(chop和chomp函數區別) 12-08 Perlsplit字串分割函數用法指南 12-08 perl文本輸出對齊 12-06  / LearnMoreBuyNow  / LearnMoreBuyNow  / LearnMoreBuyNow 聯繫我們 該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: [email protected] 進行舉報並提供相關證據,工作人員會在5個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

熱門內容 Perlsplit字串分割函數用法指南 Perl中use和require用法對比分析_perl Perl變數的作用my,our,local和全域變數_Perl perl中chomp的使用介紹(chop和chomp函數區別) perl文本輸出對齊 Perl語言中的$_和@_ perlpush的用法及子程式傳回值的反思 Perl語言及其優缺點簡介 Perl變數:陣列變數 perl中seek函數的用法 熱門主題 ECS鏡像 RDS索引優化 RDS分區索引 雲上的資料移轉 Web漏洞防護 物理專線 線上與離線資料分離 Kubernetes叢集 AFreeTrialThatLetsYouBuildBig! Startbuildingwith50+productsandupto12monthsusageforElasticComputeService GetStartedforFree SalesSupport 1on1presaleconsultation Chat ContactSales After-SalesSupport 24/7TechnicalSupport 6FreeTicketsperQuarter FasterResponse OpenaTicket AlibabaCloudoffershighlyflexiblesupportservicestailoredtomeetyourexactneeds. LearnMore Acomprehensivesuiteofglobalcloudcomputingservicestopoweryourbusiness PaymentMethodsWeSupport About About AboutAlibabaCloud PricingModels Products Customers Partners Startups ApsaraConference AlibabaCloudSummit Promotions Promotions FreeTrial StarterPackage SimpleApplicationServer AffiliateProgram Explore Explore Technology KnowledgeBase ChinaGateway ICPLicenseSupport GettingStarted Blog Marketplace Training&Certification Support Support ContactSales SubmitaTicket After-SalesSupport ReportAbuse Feedback Forum PricingCalculator Resources Resources DocumentationCenter AlibabaCloudMVP Security&Compliance PressRoom WHOIS SiteMap Products&Solutions ElasticComputeService CDN Anti-DDoS ObjectStorageService eCommerce WebHosting Security HotContent JapanSite ECSDocumentation HowtogetDomains SoftwareInfrastructure LearningPath NewUsers Recommended TopicCenter CloudComputing Industries Developers WebDeveloping Tutorials PHPTutorials BrowsebyLetter A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 Careers AboutUs PrivacyPolicy Legal NoticeList Links AlibabaGroup TaobaoMarketplace Tmall Juhuasuan AliExpress Alibaba.com 1688 Alimama Fliggy YunOS AliTelecom Amap UCWeb Umeng Xiami DingTalk Alipay ©2009-2022CopyrightbyAlibabaCloudAllrightsreserved //intl.aliyun.com //intl.aliyun.com/why-alibaba-cloud //intl.aliyun.com/product //intl.aliyun.com/solution //intl.aliyun.com/chinaconnect //intl.aliyun.com/icp //intl.aliyun.com/pricing //intl.aliyun.com/trust-center //intl.aliyun.com/free-trial/enterprise //intl.aliyun.com/startup //intl.aliyun.com/partner   0.0.9homon:page_57074_9135018350_Uscv9dq6oXpK



請為這篇文章評分?