【问题标题】:Using Non-Capturing Groups in MySQL REGEXP在 MySQL REGEXP 中使用非捕获组
【发布时间】:2011-08-19 09:07:18
【问题描述】:

由于某种原因,我似乎无法在 MySQL 中使用非捕获组。有没有办法在 MySQL REGEXP 中使用它们?

对于 PHP 的 PCRE 实现中的非捕获组,我使用以下语法:

(?:[PATTERN])

【问题讨论】:

  • 改编自 Andrej Ludinovskov 2011 年的评论答案,应该删除:如MySQL 5.1 regexp docs 所示,括号形成一个组,但不捕获。

标签: mysql regex


【解决方案1】:

MySQL 正则表达式中的组不是捕获组,因为在 SQL 中捕获组没有多大意义……好吧,如果没有添加语法来支持使用捕获的子字符串,那也是如此。所以它不支持(?: ) 语法,因为这种语法在 MySQL 中毫无意义——组已经不捕获。

所以,([PATTERN]) 是一个非捕获组。

【讨论】:

  • 快速修复pattern中的非捕获组:REPLACE(pattern, '?:', '');
  • @Nae 这不是一个可靠的解决方案;它不仅可以删除非捕获说明符。
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 2017-10-13
  • 1970-01-01
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多