如何在excel中查找和替换regex

unguejic  于 2023-04-13  发布在  其他
关注(0)|答案(6)|浏览(203)

我有一个Excel文件与1列和多行。
行包含各种文本,下面是一个示例:

texts are home
texts are whatever
dafds
dgretwer
werweerqwr
texts are 21412
texts are 346345
texts are rwefdg
terfesfasd
rwerw

我想用一个特定的词替换“textures are *”,其中 * 是“textures are”之后的任何内容,例如“textures are replaced”。如何在Excel中执行此操作?

kcugc4gi

kcugc4gi1#

使用GoogleSheets而不是Excel --这个功能是内置的,所以你可以直接在查找和替换对话框中使用正则表达式。

回答您的问题:

1.从Excel中复制数据并粘贴到Google表格中
1.使用regex的查找和替换对话框
1.从Google工作表复制数据并粘贴回Excel

4urapxun

4urapxun2#

如果你想要一个公式来做这件事,那么:

=IF(ISNUMBER(SEARCH("*texts are *",A1)),LEFT(A1,FIND("texts are ",A1) + 9) & "WORD",A1)

这个就行了。把“WORD”改成你想要的单词。

33qvvth1

33qvvth13#

现在是2021年,您可以使用Excel的Replace

  • 关键点:
  • 查找:texts are *
  • 替换:texts are replaced
  • 步骤
  • 选择要替换的内容,(右上角)选择替换

  • 在替换弹出窗口中,输入FindReplace规则

  • 点击Replace All,完成^_^

qc6wkl3g

qc6wkl3g4#

作为Regex的替代方法,运行:

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

将产生:

wtlkbnrh

wtlkbnrh5#

显然,Excel不使用Regex,但有一个解决方案。您可以在搜索模式中使用 *,?或~。
去找

? (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?"

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

polkgigr

polkgigr6#

你可以…
1.退出Excel
1.复制您的Excel文件并添加扩展名(即.xsl.xslm.xml.zip。例如,test.xsl变为test.xsl.xml.zip
1.解压缩.zip文件。是的,Excel文件实际上是.zip文件。
这将为您提供一个名为test.xsl.xml(或test.xslm.xml)的目录,其中包含以下目录结构:\xl\worksheets
worksheets目录中是XML格式的Excel工作表。它们没有格式化以提高可读性,因此请使用能够“漂亮”格式化XML的编辑器(我使用EditPlus或XMLSpy。有很多。)。现在您可以读取XML,您可以使用编辑器的正则表达式功能进行更改。
完成后,转到test.xsl.xml目录。您将看到_relsdocPropsxl子目录以及[Content_Types].xml文件。选择所有内容,右键单击并选择Send to > Compressed (.zip) folder。确保文本编辑器没有留下任何.bak文件(在worksheets子目录中)。如果它们在那里,请在创建新的.zip文件之前删除它们。现在将这个新.zip文件的扩展名重命名为.xsl(或.xslm)。
现在您可以在Excel中打开此文件。Excel不会介意您对XML进行了“漂亮”的格式化。
我已经做了很多次这个过程,从来没有任何问题(除非我不小心离开了.bak文件奠定了周围)。
一句警告,只包含文本(即没有公式)的Excel单元格将文本存储在不同的文件中,并从工作表文件中引用它们,因此您不会在那里看到该文本。公式中包含的任何文本(即CONCAT("ABC", "DEF"))都保留在工作表中。

相关问题