gpt4 book ai didi

javascript - 在 javascript 正则表达式中否定并重复原子组

转载 作者:行者123 更新时间:2023-11-28 19:08:12 25 4
gpt4 key购买 nike

我需要

  • 匹配{{
  • 启动捕获组
  • 除此之外的任何东西 }}
  • 结束捕获
  • 匹配}}

示例:

dummy text
{{ text to be matched }}
more dummy text dummy
dummy {{ foo { bar }} dummy text
dummy text
{{}}}

结果:

match 1: {{ text to be matched }}

group 0: text to be matched

匹配 2: {{ foo { bar }}

group 0:foo { bar

匹配 3: {{}}}

group 0: }

我遇到的问题是not }}部分原因是 Javascript 没有原子组。

我不能否定非捕获组并像这样重复它

{{                  match {{
( capture
^(?:}})+ not "}}" 1+ times
) end capture
}} match }}

这个/{{(.+)}}/有点有效,但前提是我没有换行符。

最佳答案

为了满足您的要求,您可以使用以下模式:

{{([^}]*(?:}[^}]+)*}*)}}

详情:

{{
(
[^}]* # all that is not a closing bracket
(?:
}[^}]+ # a closing bracket followed by at least one other character
)*
}* # eventual closing brackets at the end
)
}}

另一种方式(更短但效率较低):

{{([^]*?)}}(?!})

注意:该问题与原子组无关。

关于javascript - 在 javascript 正则表达式中否定并重复原子组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31273586/

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