MS Access 2013 SQL 通配符,类似正则表达式的语法

MS Access 2013 SQL wildcarding, regex-like syntax

下面的 link 似乎表明“[a-zA-Z]*”应该只匹配零个或多个字母字符。

https://msdn.microsoft.com/EN-US/library/office/ff192499.aspx

但是,在测试中似乎 return 结果出乎我的意料;例如,包含 spaces.

Select * from table1 where name like 'r[a-zA-Z]* e[a-zA-Z]*'

名称字段中应该只有 return 个连续的单词,其中第一个单词以 r 开头,none 个或更多字母字符由 space 分隔,第二个单词以 r 开头e.

但是执行这条语句return如下(结果集中的一些例子)

有没有办法让搜索 return 完全符合我的预期?我有什么不明白的?

这不是正则表达式。 *不适用于[a-zA-Z]

r[a-zA-Z]* e[a-zA-Z]* 解释为:

  • r
  • 后跟任意字符 a 到 z
  • 后跟零个或多个字符
  • 后跟 space
  • 接着是 e
  • 后跟任意字符 a 到 z
  • 后跟零个或多个字符

不幸的是你必须使用这样的东西:

Select * from table1 where name like "r*" and mid(name , instr(name , " ") + 1, 1) = "e"

这并不漂亮,也不是您想要的。