gpt4 book ai didi

javascript - 正则表达式匹配引号,如 q'[Mike's bike]'

转载 作者:行者123 更新时间:2023-11-29 19:23:03 24 4
gpt4 key购买 nike

我正在尝试编写一个匹配 Oracle q-quotes 的正则表达式对于 code-prettify.js 中的 PL/SQL 词法分析器.例如,

q'[Here's Johnny]'

这应该和

一样匹配
'Here''s Johnny'

(也就是说,SQL 将把它们全部视为一个文本字符串。q 引号相对于传统的双单引号的优势是您不必遍历文本字符串,将所有文本字符串加倍单引号。)

引号定界符可以是 [、{、< 或 ( 中的任何一个,但我认为如果我可以让它与一种括号类型一起使用,那么我可以将变体重复为 OR,例如

/^(?:pattern1|pattern2|pattern3))/

最终我想要一个单一的正则表达式来匹配普通的单引号字符串或带有任何括号类型的 q-quote。

最佳答案

对于您的词法分析器,您需要 q'[Here's Johnny]' 的文本和 'Here''s Johnny'要匹配。假设您希望匹配包括构成字符串标记的所有字符,包括引号、方括号等,此正则表达式应该有效:

(?:q'\[.*?\](?=')'|q'<.*?>(?=')'|q'\(.*?\)(?=')'|q'{.*?}(?=')'|(?!q)'(?:[^']|'')*')

两个相关的部分是:

  1. q'\[.*?\](?=')'是 q 引号字符串的基础,其余适当的括号有自己的声明,并且
  2. '(?:[^']|'')*' , 匹配单引号字符串。

可以看到匹配的例子here .

关于javascript - 正则表达式匹配引号,如 q'[Mike's bike]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255652/

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