如何在 MS 访问中运行 Regex(如果支持)? [复制]

Posted

技术标签:

【中文标题】如何在 MS 访问中运行 Regex(如果支持)? [复制]【英文标题】:How to run Regex in MSaccess (If supported)? [duplicate] 【发布时间】:2018-03-21 00:50:31 【问题描述】:

这是我的第一篇文章,请多多关照。

我想知道是否可以在 MSaccess 2010 中运行类似于 Oracle regexp_match/regexp_replace。

我通常使用的代码类似于 从表中选择 * 其中 regexp_match(name, '^foo$')

如何在 Access 中执行此操作, 是的,我试过谷歌搜索,很遗憾我没有成功。

我是否必须为此使用 VBA,如果需要,该怎么做?

谢谢,非常感谢

【问题讨论】:

我不知道这个函数是否可以从查询中使用:***.com/questions/37443992/… 我不同意引用的问题是重复的。虽然他们在 VBA 中展示了 RegEx 对象的示例,但他们并没有将其与从查询中调用它联系起来,这样它就可以作为 OP 要求的 Oracle regexp_match/regexp_replace 函数的替代品。 另一个答案(假设是重复的)缺少的是,您可以将对 VBScript 正则表达式对象的调用包装在模块中的公共函数中,并从查询中调用该函数。需要注意的是,它将无法使用索引(它将扫描整个表并为未被 WHERE 子句的其他部分过滤掉的每个值调用该函数)。我还建议将 RegExp 对象定义为静态变量,并且仅在尚未设置时才创建它(我会给出示例代码,但问题已锁定)。 【参考方案1】:

MS Access 没有内置的正则表达式支持。

但是,这个查询:

select t.*
from table t
where regexp_match(t.name, '^foo$')

最好写成:

select t.*
from table t
where t.name = 'foo';

平等在任何数据库中都更有效。

【讨论】:

嗨,戈登,感谢您回答我的问题。如果 ms-access 不支持正则表达式,可以通过 vba 导入或在 excel 中完成。我也知道如何对上述内容进行正则表达式,只是不确定如何在访问中这样做。 foo 就是一个例子。

以上是关于如何在 MS 访问中运行 Regex(如果支持)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java regex 删除 MS Word 不必要的 html 标签

在 MS Access 中使用 RegEx 将表单控件值替换为字符串

如何在 Friends 计算机上运行带有 ms 访问数据库的 java 应用程序?它在我的电脑上运行良好

如何在 ms 访问中获取表的列名? [复制]

如何将访问查询转换为MS SQL

如果不在列表中,则 MS 访问将项目添加到组合框