我在Excel 2010中编写宏以删除列的多个单元格中的换行符。 实际上,我有5个案例,我必须在单元格中搜索。 我按如下方式列举它们:
正如你所看到的,2和3非常相似,所以我认为正则表达式可能类似[a-zA-Z0-9]\n
但我不知道......首先,如果它是正确的搜索刚刚添加\ n和\ n秒的换行符,如何搜索空格。在检测到正则表达式之后,我认为可以用单个.Replace(Text,"regexp","regexp ")
来解决,其中结束空白空间来自形式" char" +" "
所以基本上我的问题是,这种模式的正则表达式是什么?
在第五种情况下,我如何搜索行终止符,以便它不会尝试在一个段落的最后一个点之后搜索换行符。
我可以将Chr(10)用于换行,将Chr(32)用于空间吗?
顺便说一下,我一直在关注这些参考文献:
How to use RegExp
VBA Split strings
答案 0 :(得分:3)
此模式将找到任意字母数字字符.
或,
,后跟可选空格,然后换行,并将其替换为匹配的结束字符,后跟一个空格。
Dim re
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "([\w.,])\s*\n"
strText = re.Replace(strText, "$1 ")
测试输出。忽略括号。他们只是在那里展示空间。
[the end.] = [the end.]
[the end.\n] = [the end. ]
[the end. \n] = [the end. ]
[the end. \n] = [the end. ]
[the end,] = [the end,]
[the end,\n] = [the end, ]
[the end, \n] = [the end, ]
[the end, \n] = [the end, ]
[the end] = [the end]
[the end\n] = [the end ]
[the end \n] = [the end ]
[the end \n] = [the end ]