【问题标题】:Notepad++ - change escape characterNotepad++ - 更改转义字符
【发布时间】:2015-08-19 10:18:57
【问题描述】:

在我使用 Notepad++ 编辑的 PL\SQL 代码中,我有以下内容:

where REGEXP_SUBSTR (a.val, '(\d+)\', 1, 1, NULL, 1) = b.key

由于\' Notepad++ 不会将' 解释为引用闭包,并且源的其余部分没有语法着色 - 它像引用文本一样具有灰色。
有什么方法可以告诉 Notepad++ 不要将 \ 解释为转义字符,因此 \' 将被解释为有效的引号结尾?
我正在搜索程序偏好,但没有任何成功。

编辑
奇怪的。当我打开新文件时,输入这一行,选择 Language > S > SQL 然后文本突出显示 OK。但是当我更改标签然后返回时,我的颜色又不好了。再次选择 Language > S > SQL 没有任何区别。

【问题讨论】:

  • \' 如何成为有效的结束报价?你能在'foo\'bar\' 找到结尾吗?
  • @AvinashRaj 是 PLSQL,所以你应该写:'foo\''bar\'。 `\` 在 PLSQL 中没有转义,我希望 Notepad++ 以同样的方式解释它。
  • 选择语言 > S > SQL,见what it looks like
  • 在我看来是个错误。
  • 如果正则表达式的最后一个字符是真正的反斜杠,那么字符串可能应该是'(\d+)\\'

标签: regex escaping notepad++


【解决方案1】:

现在 Notepad++(自 2014-05-11 起)中有一个选项可以忽略反斜杠作为 SQL 的转义字符。

取消选中“设置”-“首选项”-“MISC”中的复选框。 - '将反斜杠视为 SQL 的转义字符'

(至少在 v7.7.1 中,您需要重新启动 np++ 才能使此更改生效。)

【讨论】:

  • 我使用的是 Notepad++ 7.8.7,并且“将反斜杠视为转义”选项已移至设置-首选项-语言
【解决方案2】:

在 Oracle PL/SQL 的情况下,我已经更改了转义字符,例如字符 E 来自:

LIKE 'E\_%' ESCAPE '\' 

到:

LIKE 'E?_%' ESCAPE '?' 

成功了。不是解决方案,但如果转义字符更改可以,它会解决问题。

【讨论】:

    【解决方案3】:

    选择语言 > 用户定义,然后选择语言 > S > SQL。

    重新加载当前 SQL 语言更正错误。

    BR

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 2021-11-16
      • 1970-01-01
      • 2015-03-18
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 2017-10-24
      相关资源
      最近更新 更多