gpt4 book ai didi

ruby - 正则表达式与?被动组内的量词?

转载 作者:数据小太阳 更新时间:2023-10-29 07:36:52 26 4
gpt4 key购买 nike

我正在为 SQL 编辑 TextMate 语法。它目前有正则表达式(为了澄清省略了关键字):

(?i:^\s*(create)\s+(aggregate|function|(unique\s+)?index|table)\s+)(['"`]?)(\w+)\4

这正确地匹配了一个函数定义,如

CREATE FUNCTION similarity

我想处理 CREATE OR REPLACE,所以我将正则表达式更改为

(?i:^\s*(create(\s+or\s+replace)?)\s+(aggregate|function|(unique\s+)?index|table)\s+)(['"`]?)(\w+)\4

并且它不会匹配 CREATECREATE OR REPLACE。我也通过使新的可选组被动来修复它:

(?i:^\s*(create(?i:\s+or\s+replace)?)\s+(aggregate|function|(unique\s+)?index|table)\s+)(['"`]?)(\w+)\4

但是..为什么之前不匹配呢?我希望它匹配,但可能会给我一个我没想到的捕获组(如果外部被动组指示器没有渗透到新的内部组)。

最佳答案

这是您的\4——您需要在第一次添加新括号时将其更改为\5。

关于ruby - 正则表达式与?被动组内的量词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com