【发布时间】:2016-11-30 17:08:34
【问题描述】:
我正在尝试使用正则表达式从文本文件中删除整行(包括换行符)。
这是我的代码:
Do Until objFileToRead1.AtEndOfStream
nline = objFileToRead1.ReadLine()
regEx.Pattern = ".*to "
nline = regEx.Replace(nline, "")
objFileToRead2.WriteLine nline
Loop
这很好,可以按预期工作。 所以,如果我的文本文件包含:
哈哈哈 hehehehe to hihihihi 嗬嗬到变成:
(空行) hehehehe to hihihihi (空行)`但是,我不想要这样的空白。我已经尝试过使用regEx.Pattern = ".*to \r\n",但似乎正则表达式中的\r\n 不起作用,每次我尝试运行脚本时它都不会删除任何东西(因为搜索没有找到任何东西)。还尝试用括号和方括号封装表达式,但没有运气。
有什么建议吗?
【问题讨论】:
-
是不是表示你的
nline有匹配时是空的?只需在写入文件之前检查它 -If Len(nline) > 0 Then objFileToRead2.WriteLine nline -
@WiktorStribiżew 实际上,我正在尝试用
to结尾的每一行替换,除了这个“什么都没有”意味着应该删除该行而不是保持空白。 -
阅读下面的解决方案。问题是你仍然用
.WriteLine写空行