如何在excel中查找和替换正则表达式

use*_*570 19 regex excel replace

我有一个包含1列和多行的excel文件.

行包含各种文本,这是一个示例:

texts are home
texts are whatever
dafds
dgretwer
werweerqwr
texts are 21412
texts are 346345
texts are rwefdg
terfesfasd
rwerw
Run Code Online (Sandbox Code Playgroud)

我想替换"文本是*",其中*是"文本是"之后的任何内容,具有特定的单词,例如"文本被替换".我怎么能在Excel中这样做?

Cra*_*rag 26

使用Google表格而不是Excel - 此功能是内置的,因此您可以直接使用查找和替换对话框中的正则表达式.

回答你的问题:

  1. 从Excel复制数据并粘贴到Google表格中
  2. 使用带有正则表达式的查找和替换对话框
  3. 复制Google表格中的数据并粘贴回Excel

  • 问题清楚地表明“我如何在 Excel 中做到这一点?”。 (15认同)
  • 或者,您也可以使用LibreOffice,它也支持正则表达式. (7认同)
  • 对于我的用例来说太慢了。对于大小为 15,000 行 x 9 列的数据,页面冻结一分钟或更长时间 (2认同)

cri*_*fan 11

现在是2021年了,你可以使用Excel的替换

  • 关键点:
    • 寻找:texts are *
    • 代替:texts are replaced
  • 脚步
    • 选择要替换的内容,(右上角)选择替换
      • 在此输入图像描述
    • 在替换弹出窗口中,输入Find和 的规则Replace
      • 在此输入图像描述
    • 点击Replace All,完成^_^
      • 在此输入图像描述

  • 在答案中混合两种不同的语言对读者不利。 (26认同)
  • 谢谢你的中文截图:) (3认同)

Ham*_*han 11

显然,Excel 不使用正则表达式,但有一个解决方法。您可以使用 *, ?或 ~ 在您的搜索模式中。

寻找

? (question mark) =  Any single character. For example, sm?th finds "smith" and "smyth"  

* (asterisk) = Any number of characters For example, *east finds "Northeast" and "Southeast"  

~ (tilde) followed by ?, *, or ~ = A question mark, asterisk, or tilde. For example, fy06~? finds "fy06?"
Run Code Online (Sandbox Code Playgroud)

您可以使用这些组合来获得接近正则表达式的相似模式。


Sco*_*ner 7

如果您希望公式执行此操作,请执行以下操作:

=IF(ISNUMBER(SEARCH("*texts are *",A1)),LEFT(A1,FIND("texts are ",A1) + 9) & "WORD",A1)
Run Code Online (Sandbox Code Playgroud)

这样就可以了。将`“ WORD”更改为所需的单词。

  • 这个答案缺少其教育解释。请[编辑]这个答案来解释这个表达式是如何工作的。我确信这个答案对于经常使用 Excel 的人来说是“不言自明的”,但对于非狂热的用户来说,这堆命令可能会难以理解。 (6认同)

Gar*_*ent 5

作为正则表达式的替代方案,运行:

Sub Replacer()
   Dim N As Long, i As Long
   N = Cells(Rows.Count, "A").End(xlUp).Row

   For i = 1 To N
      If Left(Cells(i, "A").Value, 9) = "texts are" Then
         Cells(i, "A").Value = "texts are replaced"
      End If
   Next i
End Sub
Run Code Online (Sandbox Code Playgroud)

将产生:

在此输入图像描述