gpt4 book ai didi

JavaScript 正则表达式跳过子模式

转载 作者:行者123 更新时间:2023-11-28 15:33:21 26 4
gpt4 key购买 nike

这个问题我实在是想不通。

我有一个字符串,我试图匹配用左大括号和右大括号标记的三个组(例如 {content}),双大括号下面的自定义字符串意味着它是逃脱了。

SetValue:{1} when {OVERVIEW{{}}.Debug=1} else {0}
// Here is an actual real life example
ValidWhen: {! Matches('^\\d{{3}}\\s\\d{{3}}\\s\\d{{3}}[\\s\\S]', COLLECTION.AccountNumber)} {Account Number must not be more than 9 numbers.}

我无法找出一个正则表达式来将第二组匹配为 {OVERVIEW{{}}.Debug=1} 而不是最接近的 {OVERVIEW{{我正在使用这个正则表达式,因为我认为我可以使用lookbehind来防止它停在双大括号上。

/{(?!\}).*?\}/

这可能吗?或者我需要一些更复杂的字符串解析吗?

最佳答案

以下正则表达式适用于有效输入1:

/{(?:[^{}]|{{|}})*}/

我们只是不允许大括号内有任何 {},只允许双 {{}}

1 以下是上面的正则表达式可能返回意外结果的一些输入:

{{0}} text

此正则表达式将匹配 {0},这很可能是不正确的。

{{ OVER}

不平衡的大括号和很可能无效的代码。

{ A {B } C}

嵌套大括号 - 不确定这是否有效,但上面的正则表达式将抓取 {B }

Demo on regex101

关于JavaScript 正则表达式跳过子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336695/

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