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如下(结果集中的一些例子)
- 红长老(正确)
- 红色Myzomela eruthrina(不正确)
有没有办法让搜索 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"
这并不漂亮,也不是您想要的。
下面的 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如下(结果集中的一些例子)
- 红长老(正确)
- 红色Myzomela eruthrina(不正确)
有没有办法让搜索 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"
这并不漂亮,也不是您想要的。