字处理程序具有搜索和替换功能。但是,也会替换部分单词(单词中的单词组合)。为了解决这个问题,我计划删除多余的空格并使用split函数将字符串更改为单词数组,方法是使用“”作为分隔符。
但是,一旦我搜索数组,替换相应的单词,并将数组放回由空格分隔的字符串中,用户的原始格式将丢失。例如,如果原始字符串是“这是一个句子。”并且用户希望“a”替换为“the”,则输出将为“This is the sentence。”,with没有额外的空间。
所以,我的问题是,是否有任何方法只能在保留Visual Basic中用户的格式(额外空格)的同时搜索和替换整个单词。
答案 0 :(得分:4)
使用正则表达式怎么样?
在正则表达式中,代码\b
是一个单词边界,例如,当 a 是一个整体时,正则表达式\ba\b
将匹配 a 字。
例如,您的代码将是:
Dim strPattern As String: strPattern = "\ba\b"
Dim regex As New RegExp
regex.Global = True
regex.Pattern = strPattern
result = regex.Replace("This is a sentence.", "the")
答案 1 :(得分:1)
为什么你的格式丢失了?如果按空格分割文本,只需在每个元素从数组中返回后添加一个空格。但是你还必须考虑到没有空格而是标点符号的单词。
在“这是一个简单的句子,嗯?”,“呃”将被存储为“呃?”因为你被空间分裂了。所以你必须编写一个复杂的标点符号友好公式或只是使用正则表达式。做好准备 - 正则表达式很棘手。
答案 2 :(得分:1)
如果您使用拆分功能而不删除多余的空格,则您的数组中将包含空项目,这样您就不会丢失额外的空格,并且可以使用原始格式重建文档。