gpt4 book ai didi

regex - 用相同数量的 CHR(32)(2nd) 替换 notepad++ 中 EMPTY 单引号内的空格数

转载 作者:行者123 更新时间:2023-12-01 02:06:22 25 4
gpt4 key购买 nike

我要更换 每个 EMPTY 单引号内的空格反对 同号的 CHR (32)。

condition: REGEX has to match only this case - not for cases with signs between single quotation marks!

important hint: the construct, where to replace the spaces between will begin in every case with:

\|\|\s*'

and ends (in every case) with (according to Row 1+2):

'\s*\|\|


我用于搜索模式:
'(\s)+'

并更换:
CHR\(32\)

但是,这仅替换了所有空格 一个 CHR(32)!

以下示例:
vpl_text := to_char(vpl_text_old) || '    ' ||...;
vpl_text := to_char(vpl_text_old) || '' ||...;
(3)' WHERE a.object_type IN (' 'TABLE'', ''MATerialIZED VIE3W' ') '
(4) WHERE a.object_type IN (' 'TABLE'', ''MATerialIZED VIE3W' ')

我的 不完整结果:
vpl_text := to_char(vpl_text_old) || CHR(32) ||...;
vpl_text := to_char(vpl_text_old) || '' ||...;
(3)' WHERE a.object_type IN (CHR(32)TABLE'', ''MATerialIZED VIE3WCHR(32)) '
(4) WHERE a.object_type IN (CHR(32)TABLE'', ''MATerialIZED VIE3WCHR(32))

目标结果:
vpl_text := to_char(vpl_text_old) || CHR(32) || CHR(32) || CHR(32) || CHR(32) ||...;
vpl_text := to_char(vpl_text_old) || '' ||...;
(3)' WHERE a.object_type IN (' 'TABLE'', ''MATerialIZED VIE3W' ') '
(4) WHERE a.object_type IN (' 'TABLE'', ''MATerialIZED VIE3W' ')

第 3 + 4 行必须保持不变!

(“(3)”和“(4)”不是这个结构的一部分——仅用于解释!)。

本主题是作为替代方案引起的:
replace characters in notepad++ BUT exclude characters inside single quotation marks(4th)

如何在 Notepad++ 中正确定义替换正则表达式?

最佳答案

您可以使用 \G anchor继续上一场比赛结束的地方。像这样的东西:

(?:'|\G(?!^))\s(?=\s*')'?

并替换为 CHR\(32\) .见 test at regex101 .

  • (?:打开非捕获 group .匹配文字 '单引号 |或:
  • \G(?!^)从上一场比赛结束的地方继续。没有 (?!^)\G 也将匹配开始。
  • \s替换空格 (?=\s*') if followed任意数量的空间和另一个 '
  • '?结尾'可选维护\G顺序。

  • Reference - What does this regex mean

    关于regex - 用相同数量的 CHR(32)(2nd) 替换 notepad++ 中 EMPTY 单引号内的空格数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297672/

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