【问题标题】:regexp mysql function正则表达式 mysql 函数
【发布时间】:2013-01-03 09:15:11
【问题描述】:

我有几个用于匹配 ISBN 10 的 PHP 正则表达式,但我找不到与 MySQL 的 REGEXP 兼容的一个,有人可以帮我在 MySQL 中匹配 ISBN 10 吗?

我已经尝试过这个(在 PHP 中有效,但在 MySQL 中无效)

"^(97(8|9))?\d{9}(\d|X)$"

以下是我运行此正则表达式的一些值:

ISBN10: 0470945176
by Paul D. Kimmel
Publisher: John Wiley & Sons
Copyright year: © 2011

Thomas E. Creighton (Author)
ISBN-10: 0471153028 
Publisher: Wiley-Interscience; 1 edition (April 8, 1999)
2878 pages

【问题讨论】:

  • @eggyal 我添加了一些我正在运行它的值

标签: php mysql regex isbn


【解决方案1】:

\d 快捷方式在 MySQL 正则表达式中不存在。请改用[[:digit:]] 字符类:

"^(97(8|9))?[[:digit:]]{9}([[:digit:]]|X)$"

sqlfiddle 上查看。

【讨论】:

  • 如果有尾随 X,它应该是大写的。因此,如果使用此正则表达式,请使用 REGEXP BINARY "^(97(8|9))?[[:digit:]]{9}([[:digit:]]|X)$" 以便检查区分大小写。
  • 也可以简写成^(97[89])?[0-9]{9}[0-9X]$
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
  • 2011-10-05
  • 2019-11-30
相关资源
最近更新 更多