【发布时间】:2021-05-14 23:45:56
【问题描述】:
我一直在尝试自学 MySQL,想知道是否有人可以解释一下使用正则表达式元字符 '*' 和 '?' 之间的区别。我正在使用的书将它们描述为“匹配 (0) 或它前面的字符串的一个实例”。我尝试使用两者同时在我创建的练习表中寻找相同的东西并得到完全相同的输出,所以如果一个操作员应该是贪婪的而另一个不是,它看起来并不总是这样每张桌子。
编辑 1:我包含了我从 '*' that shows it matching a statement of the form 'ax*' to just a. 获得的输出的屏幕截图
编辑 2:regex101.com 没有将 MySQL 列为“风味”,当我尝试在那里对 Alexandra 执行 'al*' 时,它表示任何风味都不匹配。 MySQL Workbench 将 Alexandra 作为输出之一返回的事实是否是 MySQL 特有的,不适用于任何其他语言?
【问题讨论】:
-
是时候离开这本书,试试regex101.com 的正则表达式了。他们有书面正则表达式的解释和每个部分含义的描述
-
表达式
"al*"将匹配任何带有小写“a”的内容,这就是您的输出显示的内容。"*"仅适用于l。 -
@TimRoberts 我现在看到了!所以,它不是与“Alexandra”开头的“Al”匹配,而是与末尾的“a”匹配!