4

文字处理器程序具有搜索和替换功能。但是,部分单词(单词中的字符组合)也会被替换。为了解决这个问题,我计划删除多余的空格并使用 split 函数通过使用 " " 作为分隔符将字符串更改为单词数组。

但是,一旦我在数组中搜索,替换适当的单词,并将数组放回以空格分隔的字符串,用户的原始格式将丢失。例如,如果原始字符串是“这是一个句子”。并且用户希望将“a”替换为“the”,输出将是“This is the sentence.”,没有额外的空格。

所以,我的问题是是否有任何方法可以搜索和替换整个单词,同时仍然保留 Visual Basic 中用户的格式(额外空格)。

4

3 回答 3

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")
于 2012-10-22T21:40:47.603 回答
1

为什么你的格式丢失了?如果您按空格分割文本,则在从数组中组合回每个元素时,只需在每个元素后附加一个空格。但是您还必须考虑不是以空格而是标点符号结尾的单词。

在“This is a simple sentence, eh?”中,“eh”将存储为“eh?” 因为你被空间分割。因此,您必须编写一个复杂的标点符号友好公式或简单地使用正则表达式。做好准备 - 正则表达式......很棘手。

于 2012-10-24T21:21:32.310 回答
1

如果您在不删除多余空格的情况下使用拆分功能,则您的数组中将包含空项目,这样您就不会丢失多余的空格,并且可以使用原始格式完整地重建文档。

于 2012-10-26T03:03:46.753 回答