Perl函式 字串相關函式

2021-09-08 22:59:22 字數 3366 閱讀 6981

字串的內建函式有:

chomp, chop, chr, crypt, fc, hex, index, lc, lcfirst, length, oct,
分為幾類:

字元處理類函式:

字元位置索引:

進製轉換類:

其他類:

和chomp有點類似。

1.修改字串

$str="abnc";

print chop $str; # 輸出c

print $str; # 輸出abn

2.修改hash

%myhash=(name => "malongshuai",

prov => "jiangxi",

sch => "linchuan"

);$choped = chop %myhash;

while(($key,$value) = each %myhash)

print "=" x 9,"\n";

print "$choped";

執行返回:

prov:jiangx

sch:linchua

name:malongshua

*****====

i

3.修改列表

@list=qw(aaa bbb ccc ddd);

chop @list; # 返回aa bb cc dd

print "@list";

reverse用於反轉列表、標量字串、hash。

反轉列表:將元素反轉

@arr=qw(abc def ghi);

@arr=reverse @arr;

print "@arr"; # 輸出(ghi def abc)

print join(",",reverse "hello","world") ; # 輸出:world,hello

標量上下文下:串聯各元素得到乙個標量,然後反轉這個標量,即使反轉目標是列表

@arr=qw(aa bb cc dd );

print scalar reverse @arr; # 輸出:ddccbbaa

print "\n";

print @arr; # 輸出:aabbccdd

反轉字串

print scalar reverse "hello";  # 輸出olleh
反轉hash:會把value反轉成key,所以value重複時,將丟棄一部分鍵值

%arr=qw(aa bb cc dd );

%arr1=reverse %arr;

while(($key,$value)=each %arr1)

執行結果:

dd -> cc

bb -> aa

用於從給定字串中提取出一段子字串。

用法:

substr string,offset,length,replacement

substr string,offset,length

substr string,offset

其中:

use 5.010;

$str="love your everything";

say substr $str,5; # 輸出:your everything

say substr $str,-10; # 從後往前取:everything

say substr $str,5,4; # 從前往後取4個字元:your

say substr $str,5,-3; # 從位移5取到位移-3(從後往前算):your everyth

say substr $str,5,4,"fairy's"; # 替換源字串,但返回提取子串:your

say $str; # 源字串已被替換:love fairy's everything

可以將substr函式作為左值(lvalue),這樣可以修改源變數,就像給了replacement引數一樣:

use 5.010;

$str="love your everything";

substr($str,5,4) = "fairy's";

say $str; # 源字串已被替換:love fairy's everything

index和rindex用來找出給定字串中某個子串或某個字元的索引位置。

用法:

(r)index string,substr,position

(r)index strding,substr

use 5.010;

$str="love you and your everything";

say index $str,"you"; # 輸出:5

say index $str,"yours"; # 輸出:-1

say index $str,"you",136; # 輸出:-1

say index $str,"you",6; # 從offset=6之後搜尋,輸出:13

say rindex $str,"you"; # 輸出:13

say rindex $str,"you",10; # 找出offset=10左邊的最後乙個you,輸出:5

用於返回字串的字元數量,不是位元組數。如果是位元組數,則採用unicode模組。

下面的例子中,將輸出11。

$str="hello world";

print length $str;

length不能直接作用於陣列和hash來統計元素個數。想要統計個數:

# 陣列元素個數

@arr=qw(aaa bbb ccc ddddd eee ff);

print scalar @arr; # 輸出6

# hash元素個數

%myhash=qw(aaa bbb ccc ddddd eee ff);

print scalar keys %myhash;

如果length的物件未定義,則返回undef。如果length的物件沒有字元但已定義,則返回0。

字串相關函式

strcmp 比較字串 strcmpi 忽略大小寫比較字串 upper 轉換為大寫 blanks 產生空字串 strmatch 查詢匹配的字串 strjust 對齊字元陣列,包括左對齊,右對齊和居中 strrep 替換字串 strncmp 比較字串的前n個字元 lower 轉換為小寫 deblank...

字串相關函式

1.模擬實現strcpystrcpy str1,str2 函式是把從str2位址開始且含有null結束符的字串複製到以str1開始的位址空間中,而且str2和str1所指記憶體區域不可以重疊。這就要求str1必須有足夠的空間來容納str2的字串。模擬實現strcpy 0 也會被拷貝進去,返回值為ch...

MySQL函式 字串函式

字串函式是mysql中最常用的一類函式,字串函式主要用於處理表中的字串。1 char length s 返回字串s的字元數 select char length 你好123 5 2 length s 返回字串s的長度 select length 你好123 9 3 concat s1,s2,將字串s...