Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 仅搜索和替换整个单词_Ms Access_Replace_Vba - Fatal编程技术网

Ms access 仅搜索和替换整个单词

Ms access 仅搜索和替换整个单词,ms-access,replace,vba,Ms Access,Replace,Vba,我正在寻找一种只搜索和替换整个单词的方法。因为在我的例子中,所有的单词不仅可以用空格隔开,而且可以用.,;:/?等等,我想不出一个有效的方法来编码这个 基本上,我想做一些像这样的事情 replace([address], ***--list of separators, like .,;:/?--*** & [replacewhat] & ***--list of separators, like .,;:/?--*** ," " & [replacewith] &

我正在寻找一种只搜索和替换整个单词的方法。因为在我的例子中,所有的单词不仅可以用空格隔开,而且可以用.,;:/?等等,我想不出一个有效的方法来编码这个

基本上,我想做一些像这样的事情

replace([address], ***--list of separators, like .,;:/?--*** & [replacewhat] & ***--list of separators, like .,;:/?--*** ," " & [replacewith] & " ")

我不知道如何一次传递一个分隔符列表,而不是为每个分隔符组合运行一次替换函数(与我要替换的300个单词组合在一起将导致大量查询)

您可以使用带有
\b
标记的模式(用于单词边界)用正则表达式替换在要替换的单词之前和之后

公共函数RegExpReplaceWord(ByVal strSource作为字符串_
ByVal strFind作为字符串_
ByVal strReplace As String)As String
'目的:将[strSource]中的[strFind]替换为[strReplace]
'注释:[strFind]可以是纯文本或regexp模式;
'所有出现的[strFind]都将被替换
'早期绑定需要引用Microsoft VBScript
'正则表达式:
'你是RegExp吗
'Set re=New RegExp
'对于后期绑定,无需引用:
作为对象的模糊re
Set re=CreateObject(“VBScript.RegExp”)
re.Global=True

're.IgnoreCase=True'问题是您无法定义此操作的规则。有太多的变体/排列。因此,没有一套逻辑能够正确地实现这一点。你所能期望的最好的是一个过程,它将标记那些需要人工审查的过程;检查要更新的,然后在手动检查后让系统更新。否则,你将开发一个AI来处理置换。这不是真的,首先,MS已经做了(你可以搜索整个单词),其次,我可以列出一个组合列表,然后在每个集合中运行我的300个单词中的每一个。我真的试图避免这种情况,但这是100%可能的。我可以做的另一件事是运行一个替换,它将用一个空格替换所有字符,然后如果300个单词被空格包围,则替换它们。所以有很多方法,我只是想找到最好的方法。我必须相信,有办法找到完整的单词。非常感谢。我已经有代码,将给我所有的排列2的任何数字低于9。我只是想避免那样做。我做错什么了吗?我在一个查询Expr2:RegExpReplaceWord([newaddress1],“st”,“street”)中使用了它,但它并没有替换。NewAddress1 Expr2 1 COLUMBIA ST 1 COLUMBIA STohh,它区分大小写,没问题,这太优雅了!!!!‘‘‘‘‘‘)你只能接受一个答案。我建议你选择一个最适合你的。你也可以投票选出所有你认为有用的答案。我赞成投票。而且,是的,我记得你对我在前面的问题中的
案例感到好笑;“这让我崩溃了。@Remou,对不起,我不知道发生了什么事。我没有接受答案,投了你一票,试图回复你,但你的帖子一下子就消失了。我不知道我只能给出一个答案。您的解决方案非常有趣,但如果我必须选择-我会选择vba和vbs。对不起,谢谢你嘿,汉瑟普,希望你不介意,我在Access-Programmers.co.uk上发布了你的解决方案(给你评分),我在那里有一个2年前的帖子,是关于这个‘‘‘‘‘)’)的,我链接到这里。线在这里