regex - 使 Excel 公式将字符串视为正则表达式

标签 regex excel vba

在我的 Excel 工作簿中,出现了很多 00XX ,其中 X 可以是任何数字。例如,0017经常出现。我想删除所有出现的 00XX使用 SUBSTITUTE功能。到目前为止,我有这个:

=SUBSTITUTE(C1,"00[0-9][0-9]","")

这不起作用,我认为这是因为 Excel 将第二个字符串视为文字,而不是正则表达式。有没有办法让这个公式起作用?我知道某些编程语言允许您向字符串添加修饰符以更改其含义,但我还没有为 Excel 找到任何这样的东西。

最佳答案

此解决方案不使用 VBA

选择一个未使用的列,例如列 K.

K1 进入:

="00" & TEXT(ROW()-1,"00")

将其从 复制下来K2 通过 K100 .这是所有可能的“不受欢迎的”子字符串的列表。

原始数据位于 A1 , 在 B1 输入数组公式:
=IFERROR(TRIM(SUBSTITUTE(A1,INDEX(K1:K100,MATCH(1,COUNTIF(A1,"*"&K1:K100&"*"),0)),"")),A1)

数组公式 必须使用 Ctrl + Shift + Enter 输入,而不仅仅是 Enter 键。

如果 A1 包含:

t0078yeryet

B1 会显示:

特里耶

关于regex - 使 Excel 公式将字符串视为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915681/

相关文章:

jquery - 正则表达式匹配在 jquery-highlighttextarea 库中不起作用

regex - 如何在Linux中解析耗时(以秒为单位)

vba - 我想复制第一列中与 A3、A4、A5、A6 中具有相同单词的整行的某些部分并从空行粘贴到另一张纸上?

excel - 在图表中显示百分比但没有百分比符号

Excel VBA 中的 HTML 页面标题

vba - 保存最新的邮件附件

regex - 将 PCRE 模式转换为 POSIX

python - 使用正则表达式查找模式后的所有内容,但排除变量

excel - 搜索特定数字(以英寸为单位),其中该数字不是较大表达式的一部分

vba - 选择每组的最大值及其关联值