【问题标题】:Regexp Access VBA - multiplier not working正则表达式访问 VBA - 乘数不起作用
【发布时间】:2016-06-23 20:39:17
【问题描述】:

我正在尝试使用 VBA DAO.Recordset 从 Access 中过滤表。我想匹配如下模式:\w{3}\d{5} 例如:ABC12345

如果我仅在 VBA 代码中(在 excel 中)进行测试,但当我执行记录集时没有找到匹配项时,这可以正常工作。速记字符类\w,\d 和乘数部分{3} 被忽略

简单的查询,如:select * from table where column like '*C123*'" or "'*[C123]*',工作得很好。

我找到了一个解决方案,但它非常难看: [A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]

【问题讨论】:

  • [A-Z]{3}[0-9]{5} 工作吗?
  • 不,我试过了,还是不行
  • LIKE 不支持正则表达式,只支持通配符。
  • 也许这个答案可以帮助你:stackoverflow.com/a/5539504/310276

标签: regex excel vba ms-access


【解决方案1】:

like 'xy' 不是一个 (posix) 正则表达式,它是一个 sql 语句。 请参阅访问 SQL:https://msdn.microsoft.com/en-us/library/bb208897(v=office.12).aspx 或者可能是 T-SQL https://msdn.microsoft.com/de-de/library/ms179859(v=sql.120).aspx 但具体的可能性可能取决于连接的数据库,以及执行语句的引擎。

以下查询可能有效。

select * from table 
where customer like '[a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9][0-9]'

正则表达式在每个实现中的工作方式完全不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2015-06-19
    相关资源
    最近更新 更多