首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex公式-不能识别公式

Regex公式-不能识别公式
EN

Stack Overflow用户
提问于 2022-03-08 12:30:41
回答 1查看 40关注 0票数 2

我试图写模式,以识别公式,如果形式字符串。

例如字符串

代码语言:javascript
复制
[@param_6@]  @IF(@param_5@==null;@param_5@;@IF(1==1;@param_2@;@param_4@)@)@ - @param_3@ - <@IF(@parameter_tag2@ == null;@param_4@;@param_5@)@>

我想得到这个结果

代码语言:javascript
复制
1. Match: @IF(@param_5@==null;@param_5@;@IF(1==1;@param_2@;@param_4@)@)@
2. Match: @IF(@parameter_tag2@ == null;@param_4@;@param_5@)@

我的模式看起来是:

代码语言:javascript
复制
@IF\(.*\;.*\;.*\)@

但是regex给了我错误的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 12:34:52

您可以使用

代码语言:javascript
复制
(?s)@IF\((?>(?!@IF\(|\)@).|(?<o>)@IF\(|(?<-o>)\)@)*\)@

regex演示。详细信息

  • (?s) - RegexOptions.Singleline等效,.现在也与LF字符匹配。
  • @IF\( -一个@IF(字符串
  • (?>(?!@IF\(|\)@).|(?<o>)@IF\(|(?<-o>)\)@)* -- 的零次或多次重复
    • (?!@IF\(|\)@).| -任何不启动@IF()@字符序列的字符
    • (?<o>)@IF\(| -一个@IF(子字符串和一个值被推送到"o“组堆栈,或者
    • (?<-o>)\)@ -从"o“组堆栈弹出一个)@字符串和一个值。

  • \)@ -一个)@字符串
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71395090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档