无法正确find/replace

我有一个CSV文件,我试图从中删除HTML标签,并且所有行都返回。

使用<*>执行查找/replace操作会返回“此公式存在问题”错误。

尝试\<*>得到错误“我们找不到任何要replace的东西”。

尝试这个VBA什么都不做 – 它运行成功,但所有的标签仍然存在:

 Sub t() With Range("A1:AE60165") .Replace Chr(10), " " .Replace Chr(13), " " .Replace vbCr, " " .Replace vbLf, " " .Replace vbCrLf, " " .Replace "<*>", "" End With End Sub 

该macros也不会删除任何换行符或回车符。 用Char!10)Char(13)做一个查找/replace也不会做任何事情。

我试过的最后一件事是Worksheetfunction.Clean(Range("A1")) ,它也什么都不做。 如果在A2 ,我使用=CLEAN(A1) ,它成功地删除了换行符。 尽pipe数据集非常大,但是我不能在所有的单元格上这样做。

我甚至无法从所有单元格中成功删除@ 。 我刚刚运行它,它删除了23个实例,但即使我select的单元格有一个@没有被删除。

我怀疑这是CSV的东西,因为我不知道它为什么如此复杂。 这是一个很多的数据,所以一个函数不可能是最好的select。

这可能是一些Unicodetypes的问题?

编辑:FWIW,我使用profiles.csv在这里find,因为我学习Python它只是玩弄。 这里有一个pastebin链接到less量的数据,但我不知道它在该网站“翻译”有多好。

尝试使用记事本+ +这一点,它会容易得多,或者你可以在SQL中导入CSV并在那里做replace

下面你会find一个函数调用来说明这个过程。 你应该在循环中进行这些调用,最好是在一个数组循环中,然后写回结果以提高性能。

示例调用

 Sub test_RemoveHTML() Dim s As String: s = "<b>xxx</b><div />" MsgBox RemoveHTML(s) End Sub 

助手function

 Function RemoveHTML(s As String) As String ' Purpose: remove HTML tags and comments from string via regular expression On Error GoTo oops Dim oRegEx As Object ' Late Binding Set oRegEx = CreateObject("vbscript.regexp") With oRegEx '.Pattern = "<[^>]+>" 'basic html pattern .pattern = "<!*[^<>]*>" 'html tags and comments .Global = True .IgnoreCase = True .MultiLine = True End With RemoveHTML = oRegEx.Replace(s, "") leaveFunction: On Error Resume Next Set oRegEx = Nothing ' clear memory Exit Function oops: MsgBox "Error No " & Err.Number & " " & Err.Description, _ vbExclamation, "RemoveHTML" Resume leaveFunction End Function