如何在 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 将表单控件值替换为字符串