希望以最有效的方式處理空格?使用正則表達式刪除單元格中的所有空間,用單個字符替換多個空格,僅在數(shù)字之間的修剪空間等等。
無論您使用的輸入數(shù)據(jù)哪個,您幾乎都不會遇到?jīng)]有空格的數(shù)據(jù)集。在大多數(shù)情況下,空格很好 - 您使用它在視覺上分開不同的信息,以使其更容易感知。但是,在某些情況下,它可能會變成邪惡 - 額外的空間可能會弄亂您的公式,并使您的工作表幾乎無法管理。
為什么使用正則表達式來修剪Excel中的空格?
在我們深入研究使用正則表達式刪除Excel工作表中的Whiteves的挑剔之前,我想首先解決問題的問題 - 為什么當Excel Excel已經(jīng)具有裝飾功能時,為什么我們需要Regexes?
要了解差異,讓我們看看在每種情況下被認為是什么:
- 內(nèi)置的裝飾函數(shù)只能剝離7位ASCII系統(tǒng)中具有32個值的空間字符。
- 正則表達式可以識別幾種不同形式的空格,例如Space(),Tab(\ t),托架返回(\ r)和新行(\ n)。此外,還有與所有這些類型相匹配的Whitespace字符(\ s),對于清潔原始輸入數(shù)據(jù)非常有幫助。
確切地知道幕后會發(fā)生什么,解決解決方案要容易得多,對嗎?
如何在Excel中啟用正則表達式
眾所周知的事實是,開箱即用的Excel不支持正則表達式。要啟用它們,您需要創(chuàng)建自定義VBA功能。幸運的是,我們已經(jīng)有一個名為Regexpreplace 。等等,為什么在談論刪除時“替換”?在Excel語言中,“刪除”只是“用空字符串替換”的另一個詞:)
要將功能添加到Excel中,只需從此頁面復制其代碼,將其粘貼到VBA編輯器中,然后將您的文件保存為宏啟用的工作簿(.XLSM)。
這是函數(shù)的語法供您參考:
regexpreplace(文本,模式,替換,[instance_num],[match_case])需要前三個參數(shù),最后兩個是可選的。
在哪里:
- 文本- 要搜索的原始字符串。
- 模式- 要搜索的正則。
-
替換- 要替換??的文本。要刪除空格,您將此參數(shù)設(shè)置為:
- 空字符串(“”)絕對修剪所有空格
- 空間字符(“”)用單個空間字符替換多個空格
- instance_num (可選) - 實例號。在大多數(shù)情況下,您會省略它以替換所有實例(默認)。
- match_case (可選) - 布爾值指示是匹配(true)還是忽略(false)文本案例。對于空格,它是無關(guān)緊要的,因此被省略了。
有關(guān)更多信息,請參閱Regexpreplace功能。
如何用正則刪除空格 - 示例
隨著Regexpreplace功能添加到您的工作簿中,讓我們一次處理不同的方案。
使用正則刪除所有空格
要刪除字符串中的所有空格,您只需搜索任何空格字符,包括空間,標簽,托架返回和線饋電,然后用空字符串(“”)替換它們。
模式:\ s
替代品: ””
假設(shè)源字符串在A5中,B5中的公式為:
=RegExpReplace(A5, "\s ", "")
為了使管理模式更容易,您可以在預定義的單元格中輸入正則表達式,并使用絕對參考(例如$ a $ 2)將其提供給公式,因此,在將公式沿列下復制公式時,單元格地址將保持不變。
=RegExpReplace(A5, $A$2, "")
刪除多個空格
要刪除額外的空格(即多個連續(xù)的空間),請使用相同的正則正則\ s,但用單個空間字符替換找到的匹配項。
模式:\ s
替代品: ” ”
=RegExpReplace(A5, "\s ", " ")
請注意,此公式不僅在單詞之間,而且在字符串的開始和結(jié)尾之間保持一個空間角色,這不是很好。為了擺脫領(lǐng)先和落后的空格,請將上述公式嵌套到另一個從頭開始和結(jié)束的Regexpreplace函數(shù)中:
=RegExpReplace(RegExpReplace(A5, "\s ", " "), "^[\s] |[\s] $", "")
正則刪除領(lǐng)先和落后的空格
要在行的開頭或結(jié)尾處搜索空格,請使用“ start” ^和End $錨點。
領(lǐng)先的空格:
模式: ^[\ s]
尾巴:
模式:[\ s] $
領(lǐng)先和落后的空間:
模式: ^[\ s] | [\ s] $
無論選擇哪種正則態(tài)度,都一無所有。
替代品: ””
例如,為了在A5中的開始時和字符串結(jié)束時消除所有空間,該公式為:
=RegExpReplace(A5, "^[\s] |[\s] $", "")
如下面的屏幕截圖所示,這僅消除了領(lǐng)先和尾隨的空格。單詞之間的空間仍然完好無損,為讀者的眼睛創(chuàng)造了視覺上令人愉悅的視圖。
刪除額外的空格,但要保持換行符
使用多行字符串時,您可能希望擺脫額外的空間,但要保留線路。為了完成此操作,而不是whitespace字符\ s,搜索空格[]或空格和標簽[\ t]。當您的源數(shù)據(jù)是從另一個來源導入的,例如文本編輯器時,后一種模式就會派上用場。
在下面的數(shù)據(jù)集中,假設(shè)您希望修剪所有領(lǐng)先/尾隨的空間,除了一個內(nèi)部空間以外的所有線路,并保持多行完整。為了完成任務,您需要兩個不同的Regexpreplace功能。
第一個功能用單個空間字符代替了多個空間。
=RegExpReplace(A5, " ", " ")
另一個從一條線的開頭和結(jié)尾處剝?nèi)チ丝臻g:
=RegExpReplace(A5, "^ | $", "")
只需將兩個功能嵌套到另一個功能中:
=RegExpReplace(RegExpReplace(A5, " ", " "), "^ | $", "")
而且您將獲得完美的結(jié)果:
正則替換一個字符代替多個空間
如果您想從字符串中刪除所有空間并用特定字符替換每個連續(xù)的空格,則這是您需要做的:
首先,使用此正則延期領(lǐng)先和尾隨的空間:
=RegExpReplace(A8, "^[\s] |[\s] $", "")
然后,將上述函數(shù)提供給另一個Regexpreplace的文本參數(shù),該函數(shù)將一個或多個連續(xù)的Whitespaces替換為您指定的字符,例如連字符:
模式:\ s
替代品: -
假設(shè)源字符串在A8中,該公式采用此形狀:
=RegExpReplace(RegExpReplace(A8, "^[\s] |[\s] $", ""), "\s ", "-")
或者,您可以在單獨的單元中輸入模式和替換,例如屏幕截圖中所示:
以刪除空線的正則
這個問題是,一個單元格中有多條線的用戶經(jīng)常問:“我的單元格中有很多空白行。除了通過每個單元格并手動刪除每條線以外,有什么方法可以擺脫它們嗎?”答案:很容易!
要匹配從當前行的開始 ^到下一行\(zhòng) n的空字符的空行,則正則是:
模式: ^\ n
如果您的視覺空白線包含空格或選項卡,請使用此正則表達式:
模式: ^[\ t]*\ n
只需使用此公式將其替換為空字符串,所有空白行將立即消失!
=RegExpReplace(A5, $A$2, "")
用正則工具拆卸空格
以上示例僅表明了Regexes提供的一小部分。不幸的是,并非經(jīng)典正則表達式的所有功能都在VBA中提供。
幸運的是,我們的Ultimate Suite隨附的正則工具沒有這些限制,因為它們由Microsoft的.NET Regex引擎處理。這使您可以構(gòu)建更復雜的模式,而VBA REGEXP不支持。在下面,您會找到這樣的正則表達式的示例。
以刪除數(shù)字之間的空間
在字母數(shù)字字符串中,假設(shè)您只想在數(shù)字之間刪除空格,因此“ A 1 2 B”之類的字符串變?yōu)椤?A 12 B”。
要匹配任意兩個數(shù)字之間的空格,您可以使用以下外觀:
模式:(?
為了根據(jù)上述正則創(chuàng)建公式,以下是兩個簡單的步驟可以執(zhí)行:
- 在“ ablebits數(shù)據(jù)”選項卡上,在文本組中,單擊Regex工具。
- 在Regex Tools Pane上,選擇源數(shù)據(jù),輸入您的正則表達式,選擇“刪除”選項,然后命中刪除。
要將結(jié)果作為公式而不是價值觀,請記住在插入物中以公式復選框放置tick。
一會兒,您會看到ablebitsregexremove函數(shù)插入了原始數(shù)據(jù)右側(cè)的新列中。
另外,您可以在某些單元格中輸入正則gex,并使用插入功能對話框直接在單元格中插入公式,而在ablebitsregexremove下進行了ablebitsudfs分類。
由于此功能是專門為刪除字符串而設(shè)計的,因此僅需要兩個參數(shù) - 輸入字符串和REGEX:
=AblebitsRegexRemove(A5, $A$2)
這就是如何使用正則表達式刪除Excel中的空間的方法。我感謝您閱讀,并期待下周在我們的博客上與您見面!
可用下載
用正則示例(.xlsm文件)Ultimate Suite刪除空格 - 試用版(.EXE文件)
以上是使用Regex刪除Excel中的Whitespaces和空線的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)