【原】這也太牛了吧,白學了15年Excel,正則簡直無敵的存在,刷新認知
\d+只是正則裏面一個用法,匹配數字,相當於[0-9]。
小數、負數同時存在,要用-?\d+\.?\d+。-就是負號,\.代表小數點。
=正則提取(A2,"(-?\d+\.?\d+)","+",2)
還有一大堆表示法,一次性很難記住,先知道一些常用的就好。
1)匹配郵編,郵編是6位數字。正則表達式:\d{6}
2)匹配手機,手機號是11位數字。正則表達式:\d{11}
3)匹配電話,電話是區號-號碼組成,區號有3到4位,號碼有6到9位。正則表達式:\d{3,4}-\d{6,9}
4)匹配日期,日期格式如2022-9-17,明顯數字加橫線組成。正則表達式:\d{4}-\d{1,2}-\d{1,2}
2.普通公式寫到吐血的時間分離
這是昨晚某粉絲的問題,盧子用普通公式寫了一半就放棄了,實在太難。輸入很亂,沒啥規律,需要一大堆判斷。
於是用了正則,瞬間所有問題都不是問題了,輕鬆拿下。
開始時間:時間都是以:作爲分隔符號,存在中文和英文狀態下的:,因此用[::]表示2種符號。時或者分都是1-2位,因此用\d{1,2}。最後用ASC將中文的符號全部轉換成英文的。
=ASC(正則提取(A2,"(\d{1,2}[::]\d{1,2})","+",0,1))
結束時間:
=ASC(正則提取(A2,"(\d{1,2}[::]\d{1,2})","+",0,2))
用時:都是min之前1-2位,也就是\d{1,2}min。
=正則提取(A2,"(\d{1,2}min)","+",0,1)
3.最後,再來個簡單的案例,從字符串裏面分離出日期、步數、排名,鞏固下用法
=正則提取(A2,"(\d+)","+",0,1)
=正則提取(A2,"(\d+)","+",0,2)
排名:
=正則提取(A2,"(\d+)","+",0,3)
如果日期改變成2022-9-17這種格式,也可以順利提取。
=正則提取(A2,"(\d{4}-\d{1,2}-\d{1,2})","+",0,1)