# 如何在数据探索器中使用正则表达式的捕获组？

**URL:** https://meta.discourse.org/t/how-to-use-capture-groups-in-a-regex-in-data-explorer/139519
**Category:** Data & reporting
**Tags:** sql-query
**Created:** [2020年一月23日 09:44 UTC](https://meta.discourse.org/t/how-to-use-capture-groups-in-a-regex-in-data-explorer/139519 "2020-01-23T09:44:44Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Nacho\_Caballero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nacho_caballero/32/130189_2.png) [@Nacho\_Caballero](https://meta.discourse.org/u/Nacho_Caballero)
#### Post date: [2020年一月23日 09:44 UTC](https://meta.discourse.org/t/how-to-use-capture-groups-in-a-regex-in-data-explorer/139519/1 "2020-01-23T09:44:44Z")

</div>

当我尝试使用带问号的捕获组 `(...)?` 时出现错误。例如：

```plaintext
select p.raw 
from posts p 
where p.raw ~* '^(muchas )?gracias$' 
limit 1;

```

错误信息如下：

```plaintext
ActiveRecord::PreparedStatementInvalid: wrong number of bind variables (1 for 2) in: /*
 * DataExplorer Query
 * Query: /admin/plugins/explorer?id=12
 * Started by: nacho
 */
WITH query AS (
select p.raw from posts p where p.raw ~* '^(muchas )?gracias$' limit 1
) SELECT * FROM query
LIMIT 1000

```

直接在数据库中查询时此语句可以完美运行。请问是否有一种方法可以在 [Data Explorer](https://meta.discourse.org/t/32566?silent=true) 中绕过此问题？

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [2021年十二月8日 19:22 UTC](https://meta.discourse.org/t/how-to-use-capture-groups-in-a-regex-in-data-explorer/139519/2 "2021-12-08T19:22:37Z")

</div>

抱歉回复晚了。您报告的错误消息在搜索时出现了您的主题。

我最近在查看一个类似的问题。奇怪的是，如果添加以下注释，查询就可以在 [Data Explorer](https://meta.discourse.org/t/32566?silent=true) 中运行：`/*:0*/`。例如：

```sql
select p.raw 
from posts p 
where p.raw ~* '^(muchas )?gracias$' 
limit 1

/*:0*/

```
