matlab字串的操作及正規表示式regexp

2021-08-21 18:00:30 字數 2452 閱讀 3676

length(str)%計算字元的長度 

strcat(str1,str2)%連線字串 

strncmp(str1,str2,n)%比較字串的前n個字元 

strcmp(str1,str2)%%比較字串 

strfind(str,pattern)%找到字串範圍位置 

deblank(str)%裁切字串的尾部空格 

strtrim(str) %裁切字串的開頭和尾部的空格,製表,回車符

2.正規表示式

regexp——用於對字串進行查詢,大小寫敏感; 

regexpi——用於對字串進行查詢,大小寫不敏感; 

regexprep——用於對字串進行查詢並替換。

在參考文獻1,2中也介紹的較為詳盡了,我只舉出一些matlab的help文件中的例子加以闡述即可。

1.字元分割

str = ['split ^this string into ^several pieces'];

expression = '\^';

splitstr = regexp(str,expression,'split')

splitstr =

'split ' 'this string into ' 'several pieces'

\^代表轉義字元,該語法的目的是將^的左右字元分隔開,並各自儲存在cell中。 

2.字元匹配

str = 'extra! the regexp function helps you relax.';

expression = '\w*x\w*';

matchstr = regexp(str,expression,'match')

matchstr =

'regexp' 'relax'

正規表示式\w*表示匹配任意數量的字元,包括none。

3.匹配分割

str = 'she sells sea shells by the seashore.';

expression = '[ss]h.';

[match,nomatch] = regexp(str,expression,'match','split')

match =

'she' 'she' 'sho'

nomatch =

'' ' sells sea ' 'lls by the sea' 're.'

[ss]h表示匹配sh和sh兩個字元

4.正規表示式(\w+)(.*)

str = 'my title

here is some text.

';expression = '<(\w+).*>.*';

[tokens,matches] = regexp(str,expression,'tokens','match');

celldisp(tokens)

tokens =

title

tokens =

pcelldisp(matches)

matches =

my title

matches =

here is some text.

(\w+).*匹配與(\w*)一樣匹配任意字元,

str = sprintf('abc\n de');

expression = '.*';

matchstr = regexp(str,expression,'match')

matchstr =

[1x7 char]

匹配一切字元 

6. dotexceptnewline

matchstrnonewline = regexp(str,expression,'match','dotexceptnewline')

matchstrnonewline =

'abc' ' de'

dotexceptnewline分離每行文字,並返回每行文字的數值,文字換行使用\n分隔開。 

7. lineanchors

expression = '.$';

lastinline = regexp(str,expression,'match','lineanchors')

lastinline =

'c' 'e'

$提取每行文字的最後乙個字元,^提取每行文字的第乙個字元

matlab的正則跟python的正規表示式很相似。 

關於python的正規表示式的使用方法如下 

參考文獻: 

1. 2. 

3. 

matlab 字串操作

a hello b word 1.獲取字串長度 length a ans 5 2.連線兩個字串,每個字串最右邊的空格被裁切 strcat a,b ans hello word 連線多行字串,每行長度可不等,自動把非最長字串最右邊補空格 使與最長字串相等,會忽略空字串 e strvcat a,b,m ...

matlab 字串操作

strrep 字串查詢與替換 sprintf 格式化輸出資料到字串 strcmp 字串比較,後者忽略字母大小寫 sscanf 格式化從字串中讀取資料 regexp,regexpi 匹配正規表示式,後者忽略大小寫 regexprep 使用正規表示式替換字串 regexptranslate 將私服穿轉化...

MATLAB中字串操作

1.讀取name.txt檔名並讀取裡面的內容 第一種方式 比如說在e new下有一系列txt檔案,檔名符合matlab變數名的命名規則,並且沒有temp.txt檔案,每個檔案有兩列,以空格分割,第一列是字串,第二列是浮點數字,要讀取第二列的浮點數字為陣列並以檔名為變數名。file dir e new...