问题标签 [balancing-groups]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - .NET Regex Balancing Groups and syntax matching
I have some code containg null == myvar and want to change it myvar == null. Variants of code
I have solved the 3 first cases using this regex
And replace with
Though for the last case it will replace with
The problem is it looks for a space or a parenthesis, but in the case of parenthesis it needs to balance them with opening parenthesis
I need to use Balancing Groups somehow but I do not understand how :D
.net - 避免正则表达式平衡组移出括号
我正在使用以下正则表达式来匹配引用特定 UDF 的任何数据脚本脚本的内容:
它匹配以下任何实例:
使用平衡组,我还尝试支持以下案例:
但是,当输入如下时,我遇到了麻烦:
在最后一种情况下,我的正则表达式也匹配该ThirdMethod('input')
部分。
有什么办法可以改变我的正则表达式,所以只要“括号计数”为0,它就会停止匹配?
.net - .Net Regex 中的平衡组未正确嵌套
我正试图解决我在 .Net 平衡组正则表达式中发现的一个错误。
我正在尝试匹配!{}
作为开/关组合。
当前正则表达式 ->!{[^!{}]*(((?<Open>!{)[^!{}]*)+((?<Close-Open>})[^!{}]*)+)*(?(Open)(?!))}
这匹配!{some random stuff here}
成功。它也匹配!{some other Stuff !{} with nesting}
但是,它根本不匹配!{some stuff with {} just curly braces}
。字符串中的“{}”似乎导致了一些问题,因为它似乎认为该组不再“平衡”
我正在http://regexstorm.net/tester上测试所有这些,这是 .Net 特定正则表达式测试的好地方。
公平地说,我不是正则表达式专家,并且厚颜无耻地从该站点http://www.regular-expressions.info/balancing.html复制/操纵了正则表达式
我不需要它能够匹配嵌套,因为我将使用 c# 递归地遍历匹配,但我只需要能够在上面失败的示例上获得正匹配。
更新
这是该模式的初始目标。就像 Razor 页面匹配 @{ some C# code here } 作为代码块一样,我使用了 !{some code here} 的模式来划分 html 页面内的代码段。我为客户编写了一个网站,他们使用这些“替换器”在其 html 页面中执行自定义逻辑。例如:
当页面呈现出来时,我使用 Regex 来识别那些“替换器”,然后使用 Springframework.Net 针对已知上下文执行该代码。
自 2009 年以来,这一切都运作良好(10 多年前是的!)但现在他们开始使用更多的 Json 类型数据,这就是我发现我的正则表达式的这个错误/问题的地方。
所以想象一下这个例子
正如您在上面的示例中看到的那样,在我试图匹配的替换器中有一个带有花括号“{}”的 Json!{} 这就是正则表达式失败的地方。
PS'!不是可选的,它必须用 '!{' 打开并用 '}' 关闭
提前致谢
regex - 平衡和不平衡字符串的正则表达式
我需要匹配可以在括号之间的字符串{}
。字符串还可以包含更多类型的括号。它也可以是平衡的和不平衡的。
例如:{Title} {Size{()} {Color({[]})} {Test{} {Color{}}
所以,我实际上需要删除{....}
在这种情况下,匹配的字符串应该是:Title, Size{(), Color({[]}), Test{, Color{}
我正在使用这个正则表达式
我当时正在使用:
它仅在括号未关闭时才有效,因此它适用于:{Size{()}
- 它获取 Size{() 字符串。它不适用于{Color{}}
,因此括号是平衡的。在这种情况下,我应该得到Color{}
任何帮助表示赞赏。