左右??歷史文章分類專題?? ??最近五篇原創(chuàng)文章?? WPS和Excel是國內(nèi)最常用的二款電子表格軟件,到底是用的Excel的多,還是WPS的多?
正則表達式的元字符,網(wǎng)上介紹資料很多,但非常完整的并沒看到【我整理的較完整的元字符作用的表格介紹下次發(fā)文放出】。 比如題圖中的 \H、\V 、\K、\G、\Q、\X除了前兩個介紹資料略多,后面的,尤其是后三個,介紹資料少之又少。 今天龍逸凡就將自己學(xué)習(xí)的筆記整理出來,跟大家分享。錯漏之處,請大家指正。 元字符\K 注意:K是大寫的 用于重置匹配的起始位置。具體來說,\K 會忽略它前面正則表達式所匹配的所有內(nèi)容,也就是將前面正則表達式的匹配結(jié)果Kan砍掉,只要后面的。 案例1:提取應(yīng)交稅金的第三級科目 公式 =REGEXP(B1,"([一-龜]+-){2}\K[一-龜]+") 正則表達式"([一-龜]+-){2}"提取科目的前二級,然后用一把大砍刀\K將它砍掉。 案例2:提取各收款方式的金額 公式: =--IFNA(REGEXP($A2,B$1&"\K\d+"),) 用\K的好處是不必費神費力地用(?<=表達式)去定位,用大砍刀\K砍掉前面不要的保留后面想要的,干凈利落! 尤其是當(dāng)正向后行斷言需要使用不確定量詞時【W(wǎng)PS和Excel正則表達式的正向后行斷言不能使用不確定量詞】,這時就是\K派上用場的時候。 案例3:提取英文名 比如要提取下圖B列的英文名,不能使用正向后行斷言(?<=.+? +\w+),這個時候就提起大砍刀\K,手起刀落,將前面的姓名拼音咔嚓掉。 公式: =REGEXP(B3,"(.+? +\w+){1}\K.*") 元字符\Q、\E \Q 打開轉(zhuǎn)義模式, \E 關(guān)閉轉(zhuǎn)義模式 轉(zhuǎn)義字符\X 注意:X是大寫的 基本知識: a?看起來是一個符號,實際上它是由兩個 Unicode 代碼點組成: a(基本字符部分) ′(重音符部分) 當(dāng)我們用正則表達式對它們進行匹配時,它會就會顯出原形 這個有點類似于以前寫的文章,給數(shù)字漢字加圈 正因為有上面的情況存在,那如何將本字符及后面緊鄰的變音符、重音符等組合符號視為一個整體進行匹配呢? 使用元字符\X 如果沒有重音符等組合字符,全是普通字符呢? 它會將后面緊鄰的普通字符當(dāng)作組合字符,和當(dāng)前字符捏合在一起。 一般情況下,這個元字符用不上,只需知道有這個元字符、它有這特殊作用就行了,需要時來本Excel偷懶的技術(shù)公眾號查閱即可。 轉(zhuǎn)義符\G 這是一個錨點字符,用于匹配上一次匹配結(jié)束的位置,以確保匹配從上一次匹配結(jié)束的位置繼續(xù)進行,也就是說一旦不滿足,就停止匹配。 它在全局模式下使用。 比如下圖B4單元格的公式,提取數(shù)字,三個數(shù)字一組,普通模式下,結(jié)果為四組數(shù)字。 如果想達到“不滿足條件就停止匹配”的效果,就使用\G。 B5單元格的公式: =REGEXP(B1,"\G\d{3}") 轉(zhuǎn)義符\h\v \h 代表水平空白字符【空格、不間斷空格和水平制表符】 \v 代表垂直空白字符【換行符、回車符、換頁符、垂直制表符】 這個沒什么好講的。就不上案例了。 |
|
來自: 偷懶的技術(shù) > 《待分類》