matlab读取正则找科学,MATLAB常用正则表达式记录
MATLAB正則表達(dá)式
一、正則表達(dá)式
正則表達(dá)式是一串用于定義某種模式的字符。在有些情況下(例如,在解析程序輸入或處理文本塊時(shí)),您通常會使用正則表達(dá)式在文本中搜索與該模式匹配的一組單詞。
數(shù)據(jù)處理是matlab的長項(xiàng),但是正則表達(dá)式在做一些不標(biāo)準(zhǔn)的excel數(shù)據(jù)處理等還是很有幫助的。
二、需要掌握的基礎(chǔ)
元字符
元字符表示字母、字母范圍、數(shù)字和空格字符。使用它們來構(gòu)造廣義的字符模式。
元字符就是對未知的一種替代
環(huán)顧斷言
test='strxxx'; % 是一個(gè)字符串
% expr是表達(dá)式
環(huán)顧斷言查找緊鄰預(yù)期匹配項(xiàng)前后但并非該匹配項(xiàng)一部分的模式。
指針停留在當(dāng)前位置,并且將放棄或不捕獲對應(yīng)于 test 表達(dá)式的字符。因此,前向斷言可匹配重疊字符組。
環(huán)顧斷言就是指定匹配范圍
正則表達(dá)式
email = ‘[a-z_]+@[a-z]+.(com|net)’;
"+"是連接多個(gè)正則表達(dá)項(xiàng)
"[a-z_]“是匹配a-z的26個(gè)字母以及一個(gè)”_"符號
"\.“是指”."這個(gè)符號
"(com|net)"指"com"和"net"這兩個(gè)字符串二選一
就這樣,幾個(gè)正則表達(dá)項(xiàng)任意隨機(jī)(還是按自己的需求)組合在一起就構(gòu)成了一個(gè)正則表達(dá)式
正則表達(dá)式的用途也就是兩種:
匹配(提取) | regexp(區(qū)分大小寫)、regexpi(不區(qū)分大小寫)
替換(替換) | regexprep
三、常用實(shí)例
1、匹配(提取)
其中和關(guān)鍵的一個(gè)split,能解決大多數(shù)問題。
分割返回的是一個(gè)數(shù)組或者是cell,然后索引就可以直接使用。
我用的
%% 匹配
% 捕獲字符向量中包含字母 x 的單詞。
str = 'EXTRA! The regexp function helps you relax.';
expression = '\w*x\w*';
matchStr = regexp(str,expression,'match')
% 關(guān)鍵(很多時(shí)候這一個(gè)就夠啦):使用 split 關(guān)鍵字在分隔符處拆分文本
str = 'She sells sea shells by the seashore.';
expression = '[Ss]h.';
[match,~] = regexp(str,expression,'match','split')
% 查找 dd-mmm-yyyy 形式的日期,包括日、月和年的標(biāo)文。
str = 'Here is a date: 01-Apr-2020';
expression = '(\d+)-(\w+)-(\d+)';
mydate = regexp(str,expression,'tokens');
mydate{:}
% 查找指定字符串之間的內(nèi)容
% \w* 是標(biāo)識的一個(gè)單詞,注意單詞的分割
str = '缺少工資表的年份:2018、2019、2020-3000, 缺少考核表的年份: 1999、2008;';
expression = '(?<=:)\w*.*'; % \w*: 任意單字符 .:任何單字符 *:0次或連續(xù)多次
matchStr = regexp(str,expression,'match')
expression = '\w*.*(?=,)';
matchStr = regexp(matchStr{1},expression,'match')
%% 替換-只需要替換一下函數(shù)就行,方法基本和匹配一樣
2、替換
只需要替換一下函數(shù)就行,方法基本和匹配一樣
標(biāo)簽:匹配,記錄,正則表達(dá)式,MATLAB,str,regexp,expression,替換
來源: https://blog.csdn.net/qq_37832932/article/details/110127541
總結(jié)
以上是生活随笔為你收集整理的matlab读取正则找科学,MATLAB常用正则表达式记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习NLP领域入门
- 下一篇: matlab序列谱分析,基于MATLAB