使用Regex删除Excel中的Whitespaces和空线
希望以最有效的方式处理空格?使用正则表达式删除单元格中的所有空间,用单个字符替换多个空格,仅在数字之间的修剪空间等等。
无论您使用的输入数据哪个,您几乎都不会遇到没有空格的数据集。在大多数情况下,空格很好 - 您使用它在视觉上分开不同的信息,以使其更容易感知。但是,在某些情况下,它可能会变成邪恶 - 额外的空间可能会弄乱您的公式,并使您的工作表几乎无法管理。
为什么使用正则表达式来修剪Excel中的空格?
在我们深入研究使用正则表达式删除Excel工作表中的Whiteves的挑剔之前,我想首先解决问题的问题 - 为什么当Excel Excel已经具有装饰功能时,为什么我们需要Regexes?
要了解差异,让我们看看在每种情况下被认为是什么:
- 内置的装饰函数只能剥离7位ASCII系统中具有32个值的空间字符。
- 正则表达式可以识别几种不同形式的空格,例如Space(),Tab(\ t),托架返回(\ r)和新行(\ n)。此外,还有与所有这些类型相匹配的Whitespace字符(\ s),对于清洁原始输入数据非常有帮助。
确切地知道幕后会发生什么,解决解决方案要容易得多,对吗?
如何在Excel中启用正则表达式
众所周知的事实是,开箱即用的Excel不支持正则表达式。要启用它们,您需要创建自定义VBA功能。幸运的是,我们已经有一个名为Regexpreplace 。等等,为什么在谈论删除时“替换”?在Excel语言中,“删除”只是“用空字符串替换”的另一个词:)
要将功能添加到Excel中,只需从此页面复制其代码,将其粘贴到VBA编辑器中,然后将您的文件保存为宏启用的工作簿(.XLSM)。
这是函数的语法供您参考:
regexpreplace(文本,模式,替换,[instance_num],[match_case])需要前三个参数,最后两个是可选的。
在哪里:
- 文本- 要搜索的原始字符串。
- 模式- 要搜索的正则。
-
替换- 要替换的文本。要删除空格,您将此参数设置为:
- 空字符串(“”)绝对修剪所有空格
- 空间字符(“”)用单个空间字符替换多个空格
- instance_num (可选) - 实例号。在大多数情况下,您会省略它以替换所有实例(默认)。
- match_case (可选) - 布尔值指示是匹配(true)还是忽略(false)文本案例。对于空格,它是无关紧要的,因此被省略了。
有关更多信息,请参阅Regexpreplace功能。
如何用正则删除空格 - 示例
随着Regexpreplace功能添加到您的工作簿中,让我们一次处理不同的方案。
使用正则删除所有空格
要删除字符串中的所有空格,您只需搜索任何空格字符,包括空间,标签,托架返回和线馈电,然后用空字符串(“”)替换它们。
模式:\ s
替代品: ””
假设源字符串在A5中,B5中的公式为:
=RegExpReplace(A5, "\s ", "")
为了使管理模式更容易,您可以在预定义的单元格中输入正则表达式,并使用绝对参考(例如$ a $ 2)将其提供给公式,因此,在将公式沿列下复制公式时,单元格地址将保持不变。
=RegExpReplace(A5, $A$2, "")
删除多个空格
要删除额外的空格(即多个连续的空间),请使用相同的正则正则\ s,但用单个空间字符替换找到的匹配项。
模式:\ s
替代品: ” ”
=RegExpReplace(A5, "\s ", " ")
请注意,此公式不仅在单词之间,而且在字符串的开始和结尾之间保持一个空间角色,这不是很好。为了摆脱领先和落后的空格,请将上述公式嵌套到另一个从头开始和结束的Regexpreplace函数中:
=RegExpReplace(RegExpReplace(A5, "\s ", " "), "^[\s] |[\s] $", "")
正则删除领先和落后的空格
要在行的开头或结尾处搜索空格,请使用“ start” ^和End $锚点。
领先的空格:
模式: ^[\ s]
尾巴:
模式:[\ s] $
领先和落后的空间:
模式: ^[\ s] | [\ s] $
无论选择哪种正则态度,都一无所有。
替代品: ””
例如,为了在A5中的开始时和字符串结束时消除所有空间,该公式为:
=RegExpReplace(A5, "^[\s] |[\s] $", "")
如下面的屏幕截图所示,这仅消除了领先和尾随的空格。单词之间的空间仍然完好无损,为读者的眼睛创造了视觉上令人愉悦的视图。
删除额外的空格,但要保持换行符
使用多行字符串时,您可能希望摆脱额外的空间,但要保留线路。为了完成此操作,而不是whitespace字符\ s,搜索空格[]或空格和标签[\ t]。当您的源数据是从另一个来源导入的,例如文本编辑器时,后一种模式就会派上用场。
在下面的数据集中,假设您希望修剪所有领先/尾随的空间,除了一个内部空间以外的所有线路,并保持多行完整。为了完成任务,您需要两个不同的Regexpreplace功能。
第一个功能用单个空间字符代替了多个空间。
=RegExpReplace(A5, " ", " ")
另一个从一条线的开头和结尾处剥去了空间:
=RegExpReplace(A5, "^ | $", "")
只需将两个功能嵌套到另一个功能中:
=RegExpReplace(RegExpReplace(A5, " ", " "), "^ | $", "")
而且您将获得完美的结果:
正则替换一个字符代替多个空间
如果您想从字符串中删除所有空间并用特定字符替换每个连续的空格,则这是您需要做的:
首先,使用此正则延期领先和尾随的空间:
=RegExpReplace(A8, "^[\s] |[\s] $", "")
然后,将上述函数提供给另一个Regexpreplace的文本参数,该函数将一个或多个连续的Whitespaces替换为您指定的字符,例如连字符:
模式:\ s
替代品: -
假设源字符串在A8中,该公式采用此形状:
=RegExpReplace(RegExpReplace(A8, "^[\s] |[\s] $", ""), "\s ", "-")
或者,您可以在单独的单元中输入模式和替换,例如屏幕截图中所示:
以删除空线的正则
这个问题是,一个单元格中有多条线的用户经常问:“我的单元格中有很多空白行。除了通过每个单元格并手动删除每条线以外,有什么方法可以摆脱它们吗?”答案:很容易!
要匹配从当前行的开始 ^到下一行\ n的空字符的空行,则正则是:
模式: ^\ n
如果您的视觉空白线包含空格或选项卡,请使用此正则表达式:
模式: ^[\ t]*\ n
只需使用此公式将其替换为空字符串,所有空白行将立即消失!
=RegExpReplace(A5, $A$2, "")
用正则工具拆卸空格
以上示例仅表明了Regexes提供的一小部分。不幸的是,并非经典正则表达式的所有功能都在VBA中提供。
幸运的是,我们的Ultimate Suite随附的正则工具没有这些限制,因为它们由Microsoft的.NET Regex引擎处理。这使您可以构建更复杂的模式,而VBA REGEXP不支持。在下面,您会找到这样的正则表达式的示例。
以删除数字之间的空间
在字母数字字符串中,假设您只想在数字之间删除空格,因此“ A 1 2 B”之类的字符串变为“ A 12 B”。
要匹配任意两个数字之间的空格,您可以使用以下外观:
模式:(?
为了根据上述正则创建公式,以下是两个简单的步骤可以执行:
- 在“ ablebits数据”选项卡上,在文本组中,单击Regex工具。
- 在Regex Tools Pane上,选择源数据,输入您的正则表达式,选择“删除”选项,然后命中删除。
要将结果作为公式而不是价值观,请记住在插入物中以公式复选框放置tick。
一会儿,您会看到ablebitsregexremove函数插入了原始数据右侧的新列中。
另外,您可以在某些单元格中输入正则gex,并使用插入功能对话框直接在单元格中插入公式,而在ablebitsregexremove下进行了ablebitsudfs分类。
由于此功能是专门为删除字符串而设计的,因此仅需要两个参数 - 输入字符串和REGEX:
=AblebitsRegexRemove(A5, $A$2)
这就是如何使用正则表达式删除Excel中的空间的方法。我感谢您阅读,并期待下周在我们的博客上与您见面!
可用下载
用正则示例(.xlsm文件)Ultimate Suite删除空格 - 试用版(.EXE文件)
以上是使用Regex删除Excel中的Whitespaces和空线的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

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

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文将指导您完成为Excel Pivot表和图表创建时间表的过程,并演示如何使用它以动态和引人入胜的方式与数据进行交互。 您的数据在Pivo中组织了

本教程演示了如何在数据集中有效地定位顶部N值并使用Excel公式检索关联的数据。 无论您需要最高,最低还是符合特定标准的人,本指南都提供解决方案。 Findi

掌握Google表格分类:综合指南 在Google表中对数据进行排序不需要复杂。本指南涵盖了各种技术,从整个床单到特定范围,按颜色,日期和多个列。 无论你是诺维

在本教程中,您将学习如何在Excel中使用正则表达式来查找和提取与给定模式相匹配的子字符串。 Microsoft Excel提供了许多功能,可以从单元格中提取文本。这些功能可以与大多数

本教程向您展示了如何将下拉列表添加到Outlook电子邮件模板中,包括多个选择和数据库总体。 虽然Outlook并未直接支持下拉列表,但本指南提供了创造性的解决方法。 电子邮件模板SAV

本指南向您显示了启用Gmail中的电子邮件模板的两种简单方法:使用Gmail的内置设置或安装Gmail Chrome扩展名的共享电子邮件模板。 Gmail模板是经常发送电子邮件的大量节省时间,消除了

如果您现在可以撰写一封电子邮件并在以后的更合适的时间发送它,是否会很方便?有了Outlook的调度功能,您就可以做到这一点! 想象一下您在深夜工作,灵感来自辉煌的IDE

本教程展示了使用内置功能和自定义VBA函数在Excel单元格中分离文本和数字的几种方法。 您将在删除文本时学习如何提取数字,隔离文本时丢弃数字
