免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

使用正則表達(dá)式判斷成語的結(jié)構(gòu),位置可以被多次匹配及反向引用的應(yīng)用案例

 偷懶的技術(shù) 2024-10-12 發(fā)布于重慶

??歷史文章分類專題??

付費文章Excel練習(xí)題、函數(shù)公式職場模板 、財務(wù)應(yīng)用、財務(wù)分析及圖表表格合并、RPA財務(wù)機器人一本不正經(jīng)、學(xué)會騙圖表及可視化、表格美化漂亮3D、新手避坑指南快捷鍵、符號作用生成序列、條件格式數(shù)據(jù)整理、篩選技巧日期時間、偷懶寶典、Office 365、Power QueryWPS技巧、PPT技巧Word技巧、實用軟件正則表達(dá)式

??最近五篇原創(chuàng)文章??

Excel偷懶的技術(shù)九群讀者提到如何用正則表達(dá)式來判斷成語的結(jié)構(gòu)。

如下圖

現(xiàn)將公式跟大家分享一下,并順帶回顧一下之前介紹的知識點:

  • 分組及反向引用

  • 位置可以被多次匹配

先從最簡單的AABB式開始

AABB式

AABB式的意思是,第2個字符跟第1個字符相同,第4個跟第3個相同。

隱含的意思有:第1個、第3個不能相同。

第2個字符要跟第一個字符相同,我們可以將第1個字符設(shè)為分組,然后反向引用它。

公式:

=REGEXP(B2,"(.)\1(.)\2",1)

解釋:

括號()可以將幾個字符打包成一個整體【類似四則運算中的括號】,稱為一個分組。這些分組可以依次叫第一分組、第二分組、第三分組……,分別用\1、\2、\3來表示。

比如:

這個公式不太嚴(yán)謹(jǐn),沒有考慮隱含的意思:

第1個、第3個字符不能相同。

因而,會將四個字相同的也判斷為AABB式。

完善后的公式:

=REGEXP(B2,"(.)\1(?!\1)(.)\2",1)

(?!\1)(.)的意思為:

后面的字符不能是第一組。即:不是第一分組的其他字符,

詳細(xì)解釋見下文的【第4句話】

ABCA式

公式:

=REGEXP(B2,"(.)(?!\1)(.)(?!\1)(?!\2)(.)\1",1)

解釋:

(?!\1)(?!\2)(.)的意思是既不是第1分組也不是第2分組的其他字符。

這里用了兩個正向否定斷言,請對照下面文章的第5句話“位置可以被多次匹配”來理解:

ABCD式

公式:

=REGEXP(B2,"(.)(?!\1)(.)(?!\1)(?!\2)(.)(?!\1)(?!\2)(?!\3)(.)",1)

其他結(jié)構(gòu)

ABAC式:

=REGEXP(B2,"(.)(?!\1)(.)\1(?!\1)(?!\2).",1)

ABCB式:

=REGEXP(B2,"(.)(?!\1)(.)(?!\1)(?!\2)(.)\2",1)

ABBC式:

=REGEXP(B2,"(.)(?!\1)(.)\2(?!\1)(?!\2)(.)",1)

ABAB式:

=REGEXP(B2,"^(.)(?!\1)(.)\1\2",1)

AABC式:

=REGEXP(B2,"^(.)\1(?!\1)(.)(?!\1)(?!\2)(.)",1)

ABCC式:

=REGEXP(B2,"^(.)(?!\1)(.)(?!\1)(?!\2)(.)\3",1)

更多的正則表達(dá)式應(yīng)用,請點擊下面的合集

正則表達(dá)式

另:

千成文給出了用普通函數(shù)一次性判斷所有結(jié)構(gòu)的公式,思路很巧妙,貼上來供大家參考。

公式:

=CONCAT(CHAR(64+LET(T,MID(B2,ROW($1:$4),1),MATCH(T,UNIQUE(T),0))))

如需加入RPA群,請備注RPA

如需加入圖表群,請備注圖表


    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多