在 PL/SQL Developer Find & 中使用正则表达式模式时,如何访问匹配的对象以进行替换代替?

发布于 2024-08-08 16:19:15 字数 500 浏览 1 评论 0原文

我有一个查询,我想替换

avg(j2)

avg(case when j2 <> 0 then j2 else 0 end)

上面是一个具体示例,但所有替换的模式都是相同的。它始终是一个单词后跟一个数字,需要用 case 语句替换该语句来检查数字是否不为 0。

我尝试了以下 find:

avg(\(\w\d\))

并且 find 有效。现在,我想做一个替换,所以我尝试:

avg(case when \1 <> 0 then \1 else 0 end)

但它放置文字 \1 而不是从匹配中捕获的文本。我尝试了 \\1 & $1 也是如此,它按字面意思接受所有这些内容。谁能告诉我使用捕获的文本进行替换的正确语法是什么?支持吗?

I have a query where I want to replace

avg(j2)

with

avg(case when j2 <> 0 then j2 else 0 end)

The above is a specific example but the pattern is the same with all the replacements. It's always a word followed by a number that needs to be replaced with the case statement that checks if the number is not 0.

I tried the following for find:

avg(\(\w\d\))

and the find works. Now, I want to do a replace so I try:

avg(case when \1 <> 0 then \1 else 0 end)

but it puts literal \1 and not the captured text from the match. I tried \\1 & $1 as well and it takes all of them literally. Can anyone tell me what the right syntax is for using the captured text for replacement? Is this supported?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苦妄 2024-08-15 16:19:15

您可以使用 $ 和数字替换它,例如,
$0$1 等。请参阅下面的示例

find: TABLE (.*\..*) IS
replace: COLUMN $1 IS

http://regexr .com/3gm6c

You can replace it using $ and number like,
$0 or $1 etc. see an example below

find: TABLE (.*\..*) IS
replace: COLUMN $1 IS

http://regexr.com/3gm6c

节枝 2024-08-15 16:19:15

我不确定 PL/SQL Developer IDE 是否支持组捕获。不过,最近的版本似乎确实支持基于正则表达式的查找和替换。无法找到来源来确认群组捕获是否有效。
为什么不尝试将代码粘贴到像 Notepad++ 这样的东西中并尝试相同的正则表达式。它应该有效。您可以将结果粘贴回 IDE 并从那里继续...

I am not sure if the PL/SQL Developer IDE supports group capture. The recent versions do seem to support regex based find and replace though. Cant find a source to confirm if group capture works.
Why dont you try pasting the code in a something like Notepad++ and try the same regex. It should work. You could paste the result back to your IDE and continue from there...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文