首页
/
每日頭條
/
科技
/
excel可以串字符的函數是
excel可以串字符的函數是
更新时间:2024-10-12 00:21:14

上一節中我們講過了正則表達式的基礎語法,舉了一個例子,把A列數據各個部門中的門字去掉,當時寫的代碼中:

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "門"

End With

.Pattern = "門",此表達式中的“門”字就是一個普通字符,如果表達式中隻是用普通字符的話,那我們用查找功能完全可以匹配目标字符串,為何還要寫代碼呢?所以正則表達式中還有另外一種字符,叫做元字符。

比如我們在查找時通常會用通配符“*”表示任意字符,在正則表達式中也有一些固定的字符,他們可以表達某一類型的字符,以實現強大的匹配能力。

下面例舉一些常用的元字符:(注意大小寫之分)

\d 匹配一個數字字符

\D 匹配一個非數字字符

\w 匹配包括下劃線的任何單詞字符。[A-Za-z0-9_]

\W 匹配任何非單詞字符

\s 匹配任何空白字符,包括空格、制表符、換頁符等等

\S 匹配任何非空白字符

\b 匹配一個單詞邊界,也就是指單詞和空格間的位置

\B 匹配非單詞邊界

\n 匹配一個換行符

\r 匹配一個回車符

\t 匹配一個制表符

. 匹配除"\n"之外的任何單個字符。

我們通過具體的例子來體會下這些元字符的作用。

案例1:提取字符串

excel可以串字符的函數是(EXCEL正則表達式之元字符)1

上圖中A列數據把産品和單價寫在一起了,有的是單價在産品前面,有的是單價在産品的後面,現在想把他們分開到兩列。

用函數也可以做 但挺麻煩的。如果用正則表達式,隻要把每個單元格中的數字匹配出來,然後替換成空就得到了漢字部分了,反之隻要把漢字匹配出來替換為空就得到了數字。

前面我們講過,在元字符中,\d 匹配一個數字字符,我們看下關鍵代碼:

Sub 提取漢字()

Dim regx As Object, n%

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "\d" '匹配數字

End With

Do

n = n 1

Cells(n 1, 2).Value = regx.Replace(Cells(n 1, 1).Value, "")

Loop Until Cells(n 1, 1).Value = ""

End Sub

同理,\D 匹配一個非數字字符,我們可以通過“\D”來匹配漢字,把漢字替換成空,得到數字。代碼如下:

Sub 提取數字()

Dim regx As Object, n%

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "\D"

End With

Do

n = n 1

Cells(n 1, 3).Value = regx.Replace(Cells(n 1, 1).Value, "")

Loop Until Cells(n 1, 1).Value = ""

End Sub

兩段代碼的運行結果如下:

excel可以串字符的函數是(EXCEL正則表達式之元字符)2

如果是字母和漢字放在一個單元格裡,我們可以用\W 匹配任何非單詞字符,這樣就能匹配出字母,替換為空即可得到漢字部分。

案例2:規範格式

excel可以串字符的函數是(EXCEL正則表達式之元字符)3

\s 匹配任何空白字符,包括空格、制表符、換頁符等等,我們把換行符和空格匹配出來并且全部替換為“-”即可。

代碼如下:

Sub 規範格式()

Dim regx As Object, n%

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "\s"

End With

Do

n = n 1

Cells(n 1, 2).Value = regx.Replace(Cells(n 1, 1).Value, "-")

Loop Until Cells(n 1, 1).Value = ""

End Sub

通過這節課,我們了解了什麼是元字符,并且初步體會到了正則表達式的強大之處,後面我們逐步地講解更加複雜的匹配。

轉自:米宏Office

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
成都新能源車牌号選号最新規則
成都新能源車牌号選号最新規則
今天上午,記者從成都市交管局車管所獲悉,成都将于九月十八号,也就是下周一,正式啟用全國統一機動車号牌選号系統。與之前的選号系統相比,新的選号系統将更加規範便捷。據成都市車管所副所長羅躍介紹,新的号牌号碼資源将由四川省公安廳交通管理局負責統一...
2024-10-12
三星折疊屏手機功能大全
三星折疊屏手機功能大全
今天淩晨3點三星召開發布會,除了發布s10系列之外,還正式發布了一款名為Galaxyfold的可折疊手機,并對這款手機進行了演示。下面,我通過5張GIF動圖和大家分享Galaxyfold的可折疊到底是什麼意思。首先,這部手機在沒有展開的時候...
2024-10-12
從外觀上怎麼區分閃充和快充
從外觀上怎麼區分閃充和快充
近些年來,随着手機性能的不斷提升,以及人們生活對手機依賴性的增強,對快充的需求也與日俱增。2022年7月19日,iQOO發布了iQOO10Pro,這是第一款突破200W功率快充的手機,從最初的5V1A充電,到如今的200W快充,手機充電的功...
2024-10-12
老男孩吉他譜簡單版教學數字
老男孩吉他譜簡單版教學數字
今天給大家分享的手機吉他譜是《老男孩》,來自筷子兄弟。他們是由肖央、王太利組成的中國内地影視歌三栖組合。歌曲介紹《老男孩》是根據大橋卓彌的歌曲《ありがとう(謝謝)》改編的,由王太利作詞,趙亮編曲,筷子兄弟演唱的一首歌。歌曲2011年11月2...
2024-10-12
如何分析電腦故障
如何分析電腦故障
請您在閱讀前點擊上面的“關注”二字,後續會為您提供更多有價值的電腦知識,感謝每一位朋友的支持!在電腦使用過程中,有些電腦故障是不可避免的。很多小夥伴對一些常見的電腦故障診斷方法還不是很熟悉。并不知道是什麼原因導緻我的電腦出現這些問題。今天就...
2024-10-12
Copyright 2023-2024 - www.tftnews.com All Rights Reserved